2012-08-06 23 views
0

我有这种类型的定义:如何在Oracle存储过程中正确使用对象类型?

Create Type "T1" as Table of Varchar2(10);/ 

这得到了执行。

如何在PL/SQL中使用T1类型变量?我有以下步骤:

Create or replace PROCEDURE P1 
AS 
    P_K T1; 
BEGIN 
    SELECT P_K_J INTO P_K FROM SOME_TABLE WHERE NAME='JONES' ; 
    FOR I IN P_K.FIRST..P_K.LAST LOOP 
    DBMS_OUTPUT.PUT_LINE('THE VALUES OF P_K ARE' || P_K(I)); 
    END LOOP; 
END P1; 

这提供了以下错误:

 
ERROR: 
3/5  PL/SQL: Item ignored 
3/5  PLS-00311: the declaration of "T1" is incomplete or malformed 

我的问题是:如何实例类型的变量T1

+0

是'T1'和' P1'在同一个模式中创建? – 2012-08-06 09:44:29

+0

YES.THEY在同一个SCHEMA中 – Jones 2012-08-06 09:45:21

+1

如果你用大写字母编写PL/SQL代码,那也没问题,但如果你对你的评论做同样的事情,这看起来不是很友好。 – 2012-08-06 09:48:13

回答

1
Create Type "T1" as Table of Varchar2(10); 
/
Create or replace PROCEDURE P1 
AS 
    P_K T1; 
BEGIN 

    SELECT P_K_J BULK COLLECT INTO P_K FROM SOME_TABLE WHERE NAME='JONES'; 

    FOR I IN P_K.FIRST..P_K.LAST LOOP 
    DBMS_OUTPUT.PUT_LINE('THE VALUES OF P_K ARE' || P_K(I)); 
    END LOOP; 

END P1; 
/
相关问题