【问题标题】:How to correctly use an object type in an Oracle stored procedure?如何在 Oracle 存储过程中正确使用对象类型?
【发布时间】:2012-08-06 09:34:27
【问题描述】:

我有这个类型定义:

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;

这会产生以下错误:

错误: 3/5 PL/SQL:项目被忽略 3/5 PLS-00311:“T1”的声明不完整或格式错误

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

【问题讨论】:

  • T1P1 是在同一个架构中创建的吗?
  • PL/SQL 代码用大写字母写就可以了,但是用cmets做同样的事情就显得不太友好了。

标签: sql oracle stored-procedures plsql


【解决方案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;
/

【讨论】:

    猜你喜欢
    • 2015-09-21
    • 1970-01-01
    • 2015-10-03
    • 2017-06-08
    • 2019-10-29
    • 2016-07-21
    • 2011-10-10
    • 2021-12-18
    • 2017-03-02
    相关资源
    最近更新 更多