【发布时间】:2018-11-22 16:07:10
【问题描述】:
我使用的是 Oracle 10g,但我在使用 Open for Query_string 时遇到问题。
该查询字符串是一个动态查询,它有 7000 多个字符。
如何使用 varchar2 打开游标(在 10g 中只接受 4000 的最大长度)?目前我尝试使用 CLOB 而不是 open..for 不接受它。
在标头中声明:TYPE tref IS REF CURSOR;
DECLARE
SQL CLOB;
BEGIN
SQL := '...';
OPEN tref FOR SQL
END
不接受的10g版本是:
DECLARE
SQL VARCHAR2(8000);
BEGIN
SQL := '...';
OPEN tref FOR SQL
END
谢谢
【问题讨论】:
-
即使在 Oracle 10 中,PL/SQL 变量也最多可容纳 32767 个字节:Quote from the manual"VARCHAR2 数据类型采用一个必需参数,该参数指定最大大小为 32767 个字节 i>"
-
无论如何从 .net 调用到存储过程都会告诉我最大长度的错误。明明用12g没问题。