Plsql 在pl/sql中,如何执行存储在CLOB类型字段中的select语句?

Plsql 在pl/sql中,如何执行存储在CLOB类型字段中的select语句?,plsql,clob,Plsql,Clob,在OracleDB中,我有一个很大的select语句,其中包含许多连接和案例,存储在我的一个表中的CLOB字段中。 如何从CLOB执行此语句?查看execute IMMEDIATE语法。 示例表: CREATE TABLE test(id number, largedata clob); INSERT INTO test VALUES (1, 'select name from v$database'); commit; select * from test; 输出是数据库名。提示:CLOB

在OracleDB中,我有一个很大的select语句,其中包含许多连接和案例,存储在我的一个表中的CLOB字段中。 如何从CLOB执行此语句?

查看execute IMMEDIATE语法。 示例表:

CREATE TABLE test(id number, largedata clob);
INSERT INTO test VALUES (1, 'select name from v$database'); 
commit;
select * from test;

输出是数据库名。

提示:CLOB必须至少有11g,并立即执行。Compare::它必须是CHAR或VARCHAR2类型,而不是NCHAR或NVARCHAR2.:其类型必须是CHAR、VARCHAR2或CLOB.Gotcha。我真的以为你在建议立即执行,而10g中不存在CLOB
DECLARE
l_sql clob;
l_result VARCHAR2(50);
BEGIN
  SELECT LARGEDATA INTO l_sql FROM TEST;
  EXECUTE IMMEDIATE l_sql INTO l_result;
  dbms_output.put_line(l_result);
END;
/