database - 变量中的选择语句

标签 database oracle plsql oracle10g

我有以下for循环

for i in (
select * from employees)

loop
--code
end loop;

是否可以像这样在变量中分配 select 语句

sql_stat := 'select * from employees';

在循环中

for i in (
    sql_stat)
loop

当我尝试上述操作时出现错误 “遇到符号循环”

如果我想在变量中分配 select 语句,正确的做法是什么。

谢谢

最佳答案

您可以使用ref cursors 来获得您想要的结果。这是一个例子。

declare
      type t_cursor is ref cursor;
      c_cursor t_cursor;
      l_sql varchar2(123);
      l_var number;
   begin
     l_sql := 'select count(*) from T1';  -- your query goes here
     open c_cursor for l_sql;
     loop
       fetch c_cursor 
        into l_var;-- variable(s) of appropriate datatype you want to fetch data into
       exit When c_cursor%notfound;
       -- any work for processing fetched data goes here
     end loop;  
  end; 

关于database - 变量中的选择语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12474982/

相关文章:

sql - 如何确定 oracle 数据库是否设置为自动提交?

sql - 字符串聚合组并计算一个值

java - Hibernate 按属性获取记录不起作用

oracle - 无过程/函数/签名

sql - 查询嵌套表

Mysql从集合中删除特殊字符

java - 如何检查数据库中是否存在 Oracle View ?在执行查询之前

SQL:正确的连接语法

oracle - 执行 BULK COLLECT 时出现 ORA-00932

sql - PL/SQL - dbms 输出立即执行的结果