在PL/SQL中定义一个Varchar2 变量strSQL,赋了约1000多字符串SQL,准备用EXECUTE IMMEDIATE strSQL 执行,在Toad中调试,结果还没执行strSQL 成了未定义了,请那位大虾帮看一下是啥原因
我把EXECUTE IMMEDIATE strSQL 注释掉,光 给strSQL 赋一个1000多的字符串也是这样,好像strSQL 在800以内,一切都正常,Varchar2 不是最大长度是4000嘛,为啥还没超长就有问题,是和数据库配置有关吗,oracle是9i
我把EXECUTE IMMEDIATE strSQL 注释掉,光 给strSQL 赋一个1000多的字符串也是这样,好像strSQL 在800以内,一切都正常,Varchar2 不是最大长度是4000嘛,为啥还没超长就有问题,是和数据库配置有关吗,oracle是9i
解决方案 »
- RMAN CATALOG的 问题
- 这个SQL如何优化?
- Oracle连接问题 ora-12514,紧急
- 用oledb连接oracle,汉字字段"等于"判断条件失效!!!
- ORACLE分面语句如何写?
- 在PL/sql里面怎么写如此SQL语句??
- 求助,哪位好心的GG帮我把下面的这个SQL Server的存储过程变成Oracle的?谢谢先!!!!!!!!
- 数据库在mount状态下,没有open可以查看表空间以及对应的数据文件信息码?
- 为什么刚编译过的存储过程在第一次调用时不成功?说找不到该存储过程?以后调用就没有问题了。
- 是不是ORA有问题哟
- 菜鸟问题:创建表时字段名可以是变量吗?如果是,怎么做?
- JSP访问ORACLE数据库,RESULTSET取不到值,怎么回事?(急)
create table t (c1 varchar2(1000))
/
declare
s varchar2(4000);
begin
s:='begin
insert into t(c1) values(''this is line 001aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 002aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 003aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 004aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 005aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 006aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 007aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 008aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 009aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 010aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 011aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 012aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 013aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 014aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 015aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 016aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 017aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 018aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 019aaaaaaaaaaaaaaaaaa'');
insert into t(c1) values(''this is line 020aaaaaaaaaaaaaaaaaa'');
commit;
end;';
execute immediate s;
end;
/
ISSTRSQL varchar2(4000);
BEGINstrSQL:='UPDATE T_PM_UMTOTAL_PLAN_INDE M'
||' SET (M_9, M_10, M_11, M_12) = '
||' (SELECT M_9, M_10, M_11, M_12 '
||' FROM (SELECT A.UNIT_NUM, A.VAR_NUM, (INDE_VALUE - SUM_M) * M_9 / SUM_R AS M_9, (INDE_VALUE - SUM_M) * M_10 / SUM_R AS M_10, '
......
||' WHERE PLAN_TYPE_NUM = 001 AND YEAR_INDE = 2005 AND M.INDE_MOTH = 08';EXECUTE IMMEDIATE STRSQL;
end;我 把 strSQL 删短点,在EXECUTE IMMEDIATE STRSQL处 设短点;STRSQL可以看到正确值,长了就不行