from http://blog.csdn.net/leeyon4151/article/details/6616579
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';
- EXECUTE IMMEDIATE 'select ename from emp where deptno=:1 and sal<:2' using v_1,v2;
- 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 常用表
- --通过集成器名称获取interface_code
- SELECT * FROM BNE_INTEGRATORS_TL WHERE USER_NAME = 'CUX2_主设备数据导入5';
- --Excel中显示的栏位标题。可以直接Update,后更新Layout即可生效。
- SELECT * FROM BNE_INTERFACE_COLS_TL T WHERE T.INTERFACE_CODE = 'GENERAL_444_INTF';
- --Execl中每个栏位属性(包含LOV参数)。可以直接Update,后更新Layout即可生效。
- SELECT * FROM BNE_INTERFACE_COLS_B WHERE INTERFACE_CODE = 'GENERAL_444_INTF';
使用DBMS_SQL包执行DDL语句
- create or replace procedure proc_dbms_sql
- (
- table_name in varchar2, --表名
- field_name1 in varchar2, --字段名
- datatype1 in varchar2, --字段类型
- field_name2 in varchar2, --字段名
- datatype2 in varchar2 --字段类型
- )as
- v_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 or replace procedure proc_dbms_sql_update
- (
- id number,
- name varchar2
- )as
- v_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;