【发布时间】:2014-04-10 15:47:04
【问题描述】:
假设您有一个无法修改的 Oracle 10g (10.2.0.3) 数据库方案(因为它不受您的控制),并且您想将大字符串(100k+ 个字符)插入某些 CLOB 字段以使用 PL 进行测试/SQL(更准确地说:可以通过批处理文件通过 sqlplus 执行的 SQL 脚本)。有可能吗?
我找到了几个使用 .NET、oci 等或创建存储过程的解决方案,但我需要一个可行的解决方案,例如从 SQL Developer 内部,无需对数据库方案进行任何修改,例如添加存储过程等。
我已经尝试过多种方式,例如
-- Disclaimer: I typed this by heart just for SO, there might be syntax errors
DECLARE
v_test CLOB;
v_clob_to_update CLOB;
BEGIN
-- Note: rpad only works up to 32755 or something
v_test := to_clob( rpad( 'This is a very long string', 30000, '.' ) );
v_test := v_test || to_clob( rpad( '.', 30000, '.' ) );
SELECT my_clob_field INTO v_clob_to_update FROM my_table WHERE my_id = 1234 FOR UPDATE;
DBMS_LOB.WRITE( v_clob_to_update, LENGTH( v_test ), 1, v_test );
END;
但我总是收到“字符串文字太长”或“数字或值错误”消息。
是否可以在尊重我的限制的同时做到这一点?
【问题讨论】:
标签: oracle plsql oracle-sqldeveloper sqlplus