全站数据
8 4 2 0 5 8 1

oracle存储过程中如何执行动态SQL语句,详细

张药师说药 | 简单学习,快乐成才!         
问题更新日期:2024-10-18 07:20:03

问题描述

oracle存储过程中如何执行动态SQL语句,详细希望能解答下
精选答案
最佳答案

有时需要在oracle存储过程中执行动态SQL语句,例如表名是动态的,或字段是动态的,

r或查询命令是动态的,可用下面的方法:

rsetserveroutputondeclarennumber;sql_stmtvarchar2(50);

rtvarchar2(20);beginexecuteimmediate'altersessionsetnls_date_format=''YYYYMMDD''';

rt:='t_'||sysdate;

rsql_stmt:='selectcount(*)from'||t;

rexecuteimmediatesql_stmtinton;

rdbms_output.put_line('Thenumberofrowsof'||t||'is'||n);end;

r如果动态SQL语句很长很复杂,则可用包装.

rCREATEORREPLACEPACKAGEtest_pkgISTYPEcur_typISREFCURSOR;

rPROCEDUREtest_proc(v_tableVARCHAR2,t_curOUTcur_typ);END;/

rCREATEORREPLACEPACKAGEBODYtest_pkgISPROCEDUREtest_proc(v_tableVARCHAR2,t_curOUTcur_typ)ISsqlstrVARCHAR2(2000);BEGINsqlstr:='SELECT*FROM'||v_table;

rOPENt_curFORsqlstr;END;END;/

r在oracle中批量导入,导出和删除表名以某些字符开头的表

rspoolc:

a.sql