当前位置:首页 » 编程语言 » oracle动态sql返回值

oracle动态sql返回值

发布时间: 2024-12-06 17:11:51

⑴ 在ORACLE自定义函数里怎么获取一个动态sql的记录--急

参考下这个:
declare
cursor v_tablename_cursor is
select * from v_tablename
being
for tmprow in v_tablename_cursor
loop
tmprow就是条记录了
end loop;
end;

⑵ ORACLE FUNCTION 中如何动态执行一个未知具体列SQL后得到每行每列的数据(对每行数据的每列加分隔符拼接用)

这个需求好奇怪……

既然SQL是入参,想怎么拼还不是传进去的入参的问题?

按照你的例子最后的要求,想要得到'aaa分隔符bbb'的话,入参应该是“SELECT 'aaa' || '分隔符 || 'bbb' FROM al”;

另外列名也是可以从入参定义的啊。例如刚才你的列名如果想要叫ccc的话,入参改成“SELECT 'aaa' || '分隔符 || 'bbb' AS ccc FROM al”

难道还能不知道入参而调用Function么?

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

时需要在oracle 存储过程中执行动态SQL 语句 ,例如表名是动态的,或字段是动态的,
或查询命令是动态的,可用下面的方法:
set serveroutput ondeclaren number;sql_stmt varchar2(50);
t varchar2(20);beginexecute immediate 'alter session set nls_date_format=''YYYYMMDD''';
t := 't_' || sysdate;
sql_stmt := 'select count(*) from ' || t;
execute immediate sql_stmt into n;
dbms_output.put_line('The number of rows of ' || t || ' is ' || n);end;
如果动态SQL 语句 很长很复杂,则可用包装.
CREATE OR REPLACE PACKAGE test_pkgISTYPE cur_typ IS REF CURSOR;
PROCEDURE test_proc (v_table VARCHAR2,t_cur OUT cur_typ);END;/
CREATE OR REPLACE PACKAGE BODY test_pkgISPROCEDURE test_proc (v_table VARCHAR2,t_cur OUT cur_typ)ISsqlstr VARCHAR2(2000);BEGINsqlstr := 'SELECT * FROM '||v_table;
OPEN t_cur FOR sqlstr;END;END;/
在oracle 中批量导入,导出和删除表名以某些字符开头的表
spool c:\a.sql

热点内容
苹果手机的wifi密码怎么看 发布:2025-03-13 14:30:52 浏览:48
php直播开发教程 发布:2025-03-13 14:29:20 浏览:909
如何防止女朋友要手机密码 发布:2025-03-13 14:28:46 浏览:889
关系数据库的概念 发布:2025-03-13 14:20:12 浏览:459
linuxrpm卸载 发布:2025-03-13 14:17:45 浏览:650
android在线支付 发布:2025-03-13 13:50:21 浏览:791
瑞影无损图片压缩大师 发布:2025-03-13 13:27:33 浏览:452
应用怎样加密 发布:2025-03-13 13:18:10 浏览:674
李弘毅访问 发布:2025-03-13 13:17:30 浏览:656
服务器搭建直播平台源码 发布:2025-03-13 12:54:38 浏览:813