在另一个表中执行存储为Varchar的select查询

时间:2014-09-21 14:02:08

标签: oracle oracle11g oracle10g

我可以在另一个表的列中执行存储为Varchar的选择查询吗?

假设有一个表TB_SQL_QUERIES,其列名为SQL_QUERY_TEXTID

有没有办法从这个表执行查询,其中ID =(由用户输入)

2 个答案:

答案 0 :(得分:0)

是的,你可以这样做:

DECLARE
  l_sql VARCHAR2(4000);
BEGIN
    SELECT sql_query_text INTO l_sql
      FROM tb_sql_queries
     WHERE id = 1;

    EXECUTE IMMEDIATE l_sql;
END;

请参阅EXECUTE IMMEDIATE

答案 1 :(得分:0)

关于EXECUTE IMMEDIATE

的另一个答案提供建议

首先,在12c中,您可以使用32767 for SQL而不是先前版本中的4000限制。因此,您可以消除多个变量在超过4000个字符时保持连接动态字符串的努力。

其次,由于您提到输入是由用户提供的,因此您需要Bind variable来获取运行时的值。