from
ebs pl/sql儲存過程報表輸出
1.fnd_file.put_line(fnd_file.log,
l_err_idx || ', 從mes表獲取tool id:' ||
tool.tool_id || ',出現異常錯誤! '); 2.
fnd_file.put_line(fnd_file.output,' 文字輸出內容....');
獲取物件結構**
select dbms_metadata.get_ddl('table','cux2_tool_master_all') from dual;
獲取伺服器字符集
select value
from nls_database_parameters
where parameter = 'nls_characterset';
動態游標
type csr_typ is ref cursor;
csr_int csr_typ;
open csr_int for
'select ename from emp';
執行動態sql
execute immediate 'select ename from emp where deptno=:1 and sal<:2>
declare
p_id number:=1;
v_count number;
begin
v_string:=』select
count(*) from table_name a where a.id=:id』;
execute immediate v_string into v_count using p_id;
end ;
declare
v_string varchar2(100);
v_t t%rowtype ;
begin
v_string:='select * from t where name like '
't%'
'';
execute immediate v_string into v_t;
dbms_output.put_line(v_t.id||' '||v_t.name) ;
end;
create or replace trigger my_set_date after logon on database
begin
if (user = 'hr') then
execute immediate 'alter session set nls_date_format = ''yyyy-mm-dd'' ';
end if;
end my_set_date;
/web adi 常用表--通過整合器名稱獲取inte***ce_code
select * from bne_integrators_tl where user_name = 'cux2_主裝置資料匯入5';
--excel中顯示的字段標題。可以直接update,後更新layout即可生效。
select * from bne_inte***ce_cols_tl t where t.inte***ce_code = 'general_444_intf';
--execl中每個字段屬性(包含lov引數)。可以直接update,後更新layout即可生效。
select * from bne_inte***ce_cols_b where inte***ce_code = 'general_444_intf';
使用dbms_sql包執行ddl語句
create
orreplace
procedure proc_dbms_sql
(
table_name in varchar2, --表名
field_name1 in varchar2, --欄位名
datatype1 in varchar2, --欄位型別
field_name2 in varchar2, --欄位名
datatype2 in varchar2 --欄位型別
)asv_cursor number; --定義游標
v_string varchar2(200); --定義字串變數
v_row number; --行數
begin
v_cursor:=dbms_sql.open_cursor; --為處理開啟游標
v_string:=』create
table 』||table_name||』(』||field_name1||』 』||datatype1||』,』||field_name2||』 』||datatype2||』)』;
dbms_sql.parse(v_cursor,v_string,dbms_sql.native); --分析語句
v_row:=dbms_sql.execute(v_cursor); --執行語句
dbms_sql.close_cursor(v_cursor); --關閉游標
exception
when others then
dbms_sql.close_cursor(v_cursor); --關閉游標
raise;
end;
使用dbms_sql包執行dml語句
create
orreplace
procedure proc_dbms_sql_update
(
id number,
name varchar2
)asv_cursor number; --定義游標
v_string varchar2(200); --字串變數
v_row number; --行數
begin
v_cursor:=dbms_sql.open_cursor; --為處理開啟游標
v_string:=』update dinya_test2 a set a.name=:p_name where a.id=:p_id』;
dbms_sql.parse(v_cursor,v_string,dbms_sql.native); --分析語句
dbms_sql.bind_variable(v_cursor,』:p_name』,name); --繫結變數
dbms_sql.bind_variable(v_cursor,』:p_id』,id); --繫結變數
v_row:=dbms_sql.execute(v_cursor); --執行動態sql
dbms_sql.close_cursor(v_cursor); --關閉游標
exception
when others then
dbms_sql.close_cursor(v_cursor); --關閉游標
raise;
end;
空資料行
select /*null a
,null b
,null c
,null d
,*/
row_number() over(partition by 1 order
by 1)
from dual
where &r_no > 0
connect
by rownum <= &r_no;
PL SQL學習筆記
1 啟動sqlplus crtl r sqlplus 啟動sqlplus 輸入使用者名稱密碼登陸oracle 輸出hello world!ps sql set serveroutput on 這句不寫的話不會有結果輸出 sql begin 2 dbms output.put line hello w...
plsql 學習筆記1
在plsql中寫儲存過程時,需要寫 要執行的sql語句,在這個語句中變數應該這樣 變數 成為變數的值。如果變數需要加 那麼就得 變數 如果變數上加兩個 就是這樣 變數 那麼就變成 變數的名字,而不是變數的值。不是變數的量,如果需要加 那麼這樣,yyyy mm dd 一 是 關於plsql中寫在sql...
oracle學習筆記 PL SQL
pl sql 它是一種過程化語言,在pl sql中可以使用if語句或是log語句,以實現控制程式的執行流程,甚至可以定義變數,以至在語句之間傳遞資料資訊,這樣pl sql語言就能夠實現操控程式處理的細節,因此使用pl sql語句可以實現比較複雜的業務邏輯,它是oracle的專用語言,它是對標準sql...