我可以在另一个表的列中执行存储为Varchar
的选择查询吗?
假设有一个表TB_SQL_QUERIES
,其列名为SQL_QUERY_TEXT
和ID
。
有没有办法从这个表执行查询,其中ID =(由用户输入)
答案 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;
答案 1 :(得分:0)
关于EXECUTE IMMEDIATE
:
首先,在12c中,您可以使用32767 for SQL而不是先前版本中的4000限制。因此,您可以消除多个变量在超过4000个字符时保持连接动态字符串的努力。
其次,由于您提到输入是由用户提供的,因此您需要Bind variable
来获取运行时的值。