首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定正确的(ORA-06550/PLS-00306错误)

确定正确的(ORA-06550/PLS-00306错误)
EN

Stack Overflow用户
提问于 2013-07-30 21:23:59
回答 2查看 594关注 0票数 0

Oracle 11g

我很难为我创建的表的记录确定正确的构造函数。我一直得到一个ORA-06550/偏最小二乘-00306错误组合为每个论点。

例如,示例表定义为:

代码语言:javascript
复制
CREATE TABLE TMP_EXAMPLE_TABLE
(
  ID        NUMBER(8)                 NOT NULL PRIMARY KEY,
  FK_ID     NUMBER(8)                 NOT NULL,
  SOME_DATA NUMBER(8)   
)
TABLESPACE MyTablespace;

我试图实例化记录如下:

代码语言:javascript
复制
DECLARE
      TYPE example_rec_tab IS TABLE OF TMP_EXAMPLE_TABLE%ROWTYPE;
      example_recs example_rec_tab;  
  BEGIN
    example_recs.EXTEND;
    example_recs(example_recs.COUNT) := example_rec_tab(1, 2, 3);
  END;

但我得到

代码语言:javascript
复制
ORA-06550: line 6, column 41:
PLS-00306: wrong number or types of arguments in call to 'EXAMPLE_REC_TAB'
ORA-06550: line 6, column 41:
PLS-00306: wrong number or types of arguments in call to 'EXAMPLE_REC_TAB'
ORA-06550: line 6, column 41:
PLS-00306: wrong number or types of arguments in call to 'EXAMPLE_REC_TAB'
ORA-06550: line 6, column 5:
PL/SQL: Statement ignored

我不知道这里有什么问题,更广泛地说,我想知道如何为我试图创建的任何记录确定正确的构造函数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-30 22:10:37

example_rec_tab(1, 2, 3)正在尝试创建一个表,而不是一个记录。您需要填充记录的各个字段;并且需要在启动之前实例化该表:

代码语言:javascript
复制
DECLARE
  TYPE example_rec_tab IS TABLE OF TMP_EXAMPLE_TABLE%ROWTYPE;
  example_recs example_rec_tab;
BEGIN
  example_recs := example_rec_tab();
  example_recs.EXTEND;
  example_recs(example_recs.COUNT).id := 1;
  example_recs(example_recs.COUNT).id := 2;
  example_recs(example_recs.COUNT).id := 3;
END;
/

SQL Fiddle

票数 1
EN

Stack Overflow用户

发布于 2013-07-30 22:15:54

试试这个:

代码语言:javascript
复制
DECLARE 
      SUBTYPE my_row_type IS TMP_EXAMPLE_TABLE%ROWTYPE;
      TYPE example_rec_tab IS TABLE OF my_row_type;
      example_recs example_rec_tab;  
      my_row my_row_type;
  BEGIN
    example_recs := example_rec_tab();
    example_recs.EXTEND;
    SELECT 1 , 2 , 3  INTO my_row FROM dual;
    example_recs(example_recs.COUNT) := my_row ;
  END;
/
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17957670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档