是否可以在select查询中没有where子句的情况下实现隐式游标?

时间:2018-10-04 04:15:24

标签: oracle plsql

在使用隐式游标时,如果不使用“ Where” 子句,则无法包含获取所需记录的条件...

1 个答案:

答案 0 :(得分:0)

是否可以在select查询中没有where子句的情况下实现隐式游标?

是的

例如:

CREATE TABLE test_tab 
( 
   name    VARCHAR2 (10), 
   address   VARCHAR2 (10) 
);   


BEGIN

   INSERT INTO test_tab
        VALUES ('A', 'xyz');

   INSERT INTO test_tab
        VALUES ('B', 'mno');

   INSERT INTO test_tab
        VALUES ('C', 'abc');

   COMMIT;
END;

-没有条件

DECLARE 
   TYPE test_nt IS TABLE OF test_tab %ROWTYPE; 

   l_test   test_nt; 
BEGIN 
     SELECT * 
       BULK COLLECT INTO l_test
       FROM test_tab ;       

   DBMS_OUTPUT.PUT_LINE(l_test.COUNT); 
END;

-符合条件

DECLARE 
   l_name  test_tab.name%TYPE; 
BEGIN 
   SELECT name 
     INTO l_name 
     FROM test_tab
    WHERE address = 'xyz'; 

    DBMS_OUTPUT.PUT_LINE(l_name);     

END;