【发布时间】:2014-03-05 02:41:47
【问题描述】:
我有一个 SQL 过程,它应该执行一个 FOR-IN (SELECT ..) 循环,其中 SELECT 内容应该根据某些输入参数而有所不同。我的想法是将 SELECT 字符串存储到一个变量中,然后尝试在 FOR-IN 循环中提取变量值,但到目前为止没有成功(之前在那里使用了一个修复 SELECT 语句,这就是我现在想要替换的)。代码大致如下
PROCEDURE run(p_boolean BOOLEAN)
IS
BEGIN
DECLARE
v_mystring VARCHAR(50);
BEGIN
IF p_boolean = TRUE
THEN
v_mystring := 'SELECT something...';
ELSE
v_mystring := 'SELECT something else...';
END IF;
FOR p_table_name IN (would-like-to-use-the-value-of-v_mystring-here-some-way)
LOOP
...
END LOOP;
END;
END;
作为 SQL 的新手,这里尝试使用字符串变量值的整个概念很可能是错误的。我浏览了一些教程并尝试了其他一些想法(例如光标),但没有结果。任何想法表示赞赏
【问题讨论】:
-
平台是Oracle。 FOR 循环基本上除了使用 p_table_name.table_name 记录打印输出之外什么也不做
标签: sql string oracle plsql cursor