当前位置:首页 » 编程语言 » 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

热点内容
二手车宝马320li17年有哪些配置 发布:2025-09-16 17:59:32 浏览:888
c语言n次方怎么输入 发布:2025-09-16 17:51:17 浏览:909
完美国际密码在哪里改 发布:2025-09-16 17:43:44 浏览:907
网盘解压包怎么打开 发布:2025-09-16 16:59:19 浏览:816
红火脚本 发布:2025-09-16 16:53:21 浏览:987
centosphp56 发布:2025-09-16 16:52:24 浏览:256
修改逃跑吧少年不用找脚本 发布:2025-09-16 16:50:43 浏览:144
php慢日志 发布:2025-09-16 16:44:46 浏览:310
什么电脑配置做pr比较顺畅 发布:2025-09-16 16:42:03 浏览:298
centosphprpm 发布:2025-09-16 16:40:34 浏览:148