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

热点内容
美嘉算法口诀 发布:2025-05-16 06:03:15 浏览:952
c程序编译连接 发布:2025-05-16 06:02:36 浏览:964
脚本魔兽 发布:2025-05-16 06:01:52 浏览:330
文件夹python 发布:2025-05-16 06:01:43 浏览:627
电脑我的世界服务器游戏币 发布:2025-05-16 05:27:25 浏览:487
索尼手机为什么不能用安卓10 发布:2025-05-16 05:18:46 浏览:784
蔚来es6选择哪些配置实用 发布:2025-05-16 05:18:05 浏览:130
小米如何扫码wifi密码 发布:2025-05-16 05:13:38 浏览:807
楼层密码是什么意思 发布:2025-05-16 05:13:37 浏览:13
创建文件夹失败 发布:2025-05-16 05:12:59 浏览:396