请假设我有一个包创建脚本存储在表ALPHA中,位于CLOB类型的BETA列中。CLOB长度大于32767个字符。
使用PL/SQL代码,我想"立即执行"包创建脚本。
我能做到这一点吗?
提前感谢你的好心帮助。
我正在使用Oracle 10G
execute immediate
直到11gR2才支持CLOB。您可以使用DMBS_SQL
来处理较大的语句。在早期版本中,您可以构建该语句,但11g允许您解析CLOB。
这里有一个例子。
不过,动态创建一个包似乎是一个奇怪的要求。
由于您使用的是10g,因此需要使用DBMS_SQL.PARSE版本,该版本允许您构建大型语句:
PARSE过程还支持以下用于大型SQL的语法语句:
DBMS_SQL.PARSE ( c IN INTEGER, statement IN VARCHAR2S, lb IN INTEGER, ub IN INTEGER, lfflg IN BOOLEAN, language_flag IN INTEGER);
注意:该过程连接PL/SQL表语句的元素并解析得到的字符串。您可以使用此过程来解析超过单个VARCHAR2变量限制的语句通过拆分语句。
这里是这种方法的一个例子。