以下是报错的过程:create or replace procedure Export_Jobs is JobStr varchar2(1000);begin
--dbms_output.enable(9999999);
print('begin'); for t in (select job from dba_jobs)
loop
dbms_job.user_export(t.job, JobStr);
print(' ' || JobStr);
end loop;
print('end;');
end Export_Jobs; 之前试过加了句dbms_output.enable(9999999),但是也一样报错,请大家救救me -o-job只有10来个左右,JobStr保证装的下一个导出的SQL.
--dbms_output.enable(9999999);
print('begin'); for t in (select job from dba_jobs)
loop
dbms_job.user_export(t.job, JobStr);
print(' ' || JobStr);
end loop;
print('end;');
end Export_Jobs; 之前试过加了句dbms_output.enable(9999999),但是也一样报错,请大家救救me -o-job只有10来个左右,JobStr保证装的下一个导出的SQL.
解决方案 »
- oracle触发器动态sql问题
- 9I数据库迁移到10G后同样的查询语句为什么执行时间变慢了很多。
- 数据库!数据库!oracle 数据库救急!!!
- 数据库转移
- 关于for update,怎么用?
- 用命令exp和imp执行oracle数据库导出导入时总是出现EXP-00056:遇到ORACLE错误12560 ORA-12560:TNS:协议适配器错误 EXP-000000
- 怎么调用已经被重载的父类方法?
- 重新求助一个oracle存储过程题目,谢谢!!!
- oracle9i客户端为什么连接oracle8.05服务器行,但连接oracle9i反而不通?
- 在oracle里,什么是“事件”,“作业”,“报告”?请高手帮我深入理解一下?
- 怎么查询出某个字段属于某些表?
- 两个不同IP的数据库(UNIX/WIN 环境)可以用触发器把一个表的内容导到另一个库里的相应表吗?
loop
dbms_job.user_export(t.job, JobStr);
--print(' ' || JobStr);
dbms_output.enable;
dbms_output.put_line(' ' || JobStr);
end loop;
使用dbms_output.put_line的话,会提示"超出每行255个字符限制",所以我用了print.to wiler:
也许有关系,不过怎么把JobStr里面的回车去掉呢? 我试过trim(chr(13) from JobStr)和replace(JobStr, chr(13), ' ')都不大行.
SQL> begin
2 select lpad('test', 300, 'O') into :vx from dual;
3 end;
4 /PL/SQL 过程已成功完成。SQL> print vx;VX
--------------------------------------------------------------------------------OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOtest
SQL>
output一行最多255个字符,缓冲最大1M
总有办法的。只是这样消耗会比较大。
btw, 你的dba_jobs中的job最大长度是多少?
先用select max(length(job)) from dba_jobs查一下试试。