gav*_*koa 2 oracle types plsql
PL/SQL变量声明需要设置varchar2类似的类型:
declare
query varchar2(2000);
begin
for i in 1..100 loop
query := query || to_char(i);
end loop;
dbms_output.put_line(query);
end;
/
Run Code Online (Sandbox Code Playgroud)
当产品需求发生变化时我在陷阱中运行,因此循环范围变大(在我的示例中将范围设置为1..1000)并且我收到错误:
ORA-06502: PL/SQL: : ????? ?????????? ????? ??????? ????????? ?????? ????? ??? ???????? ORA-06512: ?? line 5
Run Code Online (Sandbox Code Playgroud)
所以我需要在任何地方增加查询长度,甚至用更大的数字来预测未来.
这很难看.我不是PL/SQL的专家,但通过阅读官方文档我发现clob类型不需要长度和快速检查显示代码有效!
PL/SQL代码变得更像Pascal,更像Python/Ruby/Perl.我很喜欢.
我只对动态构建的字符串应用类型转换,这些字符串不是强调循环使用.
这种技术是正确的还是我错了?
PS我是PL/SQL编程的新生,所以问这样愚蠢的问题......
PPS工作代码之一(简化):
queryStr := 'create or replace view "DATA_VIEW" ("DT", "MONEY", "EVENT") as ( ';
for eventRec in eventCur
loop
queryStr := queryStr || 'select DT, MONEY, ' || eventRec.ID
|| ' EVENT from ' || eventRec.tbl || ' union ';
end loop;
queryStr := rtrim(queryStr, ' union ') || ')';
execute immediate queryStr;
commit;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1012 次 |
| 最近记录: |