2016 - 2024

感恩一路有你

oracle动态游标for循环 如何在oracle存储过程中执行动态sql语句?

浏览量:2991 时间:2021-03-13 12:10:50 作者:admin

如何在oracle存储过程中执行动态sql语句?

例如,如果表名是动态的,或者字段是动态的,或者查询命令是动态的,您可以使用以下方法:

set serveroutput onclaren numbersql_uustmtvarchar2(50)

t varchar2(20)beginexecute immediate “alter session set nls_uu2;date format=”“yyymmdd”“””

t:=“t_2; ”“| sysdate

sqlustmt:=“选择计数(*)从”| | t

执行立即sql | stmt到n

dbms |输出.put行(“the number of rows of ”“t”“t”“n”)end

如果动态SQL语句非常长且复杂,可以使用包装器。

创建或替换包测试“pkgISTYPE cur”“typ is REF CURSOR

过程测试”proc(v_u2;table VARCHAR2,t_2;cur OUT cur_2;typ)END/

创建或替换包体测试2; pkgISPROCEDURE test_2;proc(v_2;table VARCHAR2,t_2;cur OUT cur_2;typ)ISsqlstr VARCHAR2(2000)BEGINsqlstr:=“SELECT*FROM”| | v_2; table

打开t_curfor sqlstrand/

批量导入、导出和删除表名以中某些字符开头的表Oracle

spool C:a.sql

set serveroutput onclaren numbersql | stmt varchar2(50)t varchar2(20)beginexecute immediate“alter session set nls | date format=”“yyymmdd”“”“”t:=“t | | | sysdatesql | stmt:=”select count(*)from“| | | texecute immediate sql | stmt into ndbmsu输出.put行(“行数”|结束如果动态SQL语句非常长且复杂,则可以使用。创建或替换包测试 pkgISTYPE cur typ IS REF CURSORPROCEDURE test proc(v table VARCHAR2,t cur OUT cur typ)结束/创建或替换包体测试 pkgISTYPE procedure test proc(v table VARCHAR2,t cur OUT cur typ)IS sqlstr VARCHAR2(2000)BEGIN sqlstr:=“SELECT*FROM ”“v table OPEN t cur for sqlstrand/batch导入、导出和删除Oracle中名称以某些字符开头的表。Spool C:a.sql从tname like“t%”Spool off@C:a的选项卡中选择“drop table”| tname“”

oracle动态游标for循环 oracle执行动态sql语句 oracle 动态sql语句基本语法

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。