oracle ORA错误中的列号表示什么

bqf10yzr  于 2023-04-20  发布在  Oracle
关注(0)|答案(1)|浏览(207)

ORA错误中的列号表示什么?
例如下面的错误报告说:-

ORA-06550: line 67, column 13:
PLS-00382: expression is of wrong type
ORA-06550: line 67, column 5:
PL/SQL: Statement ignored

这里我明白Line 67意味着PL/SQL脚本的第67行有问题,但是column 13在这里意味着什么,只是好奇它如何帮助我识别问题。
在第67行,我有这样一行代码(BK1 := 48715788;):

begin
    BK1 := 48715788;

变量BK 1被声明为集合类型:

BK1 userDefined.TYPE_TABNUMBER;

并且TYPE_TABNUMBER声明为:-

create or replace TYPE    "TYPE_TABNUMBER"      as table of number  ;
b0zn9rqh

b0zn9rqh1#

ORA-06550: line 67, column 13:表示第67行和该行中的第13个字符。
要放置错误消息,请执行以下操作:

ORA-06550: line 67, column 13:
PLS-00382: expression is of wrong type
ORA-06550: line 67, column 5:
PL/SQL: Statement ignored

翻译成一个英语句子
表达式48715788(从第67行的第13列开始)的类型错误(执行赋值操作);这意味着语句BK1 := 48715788;(从第67行的第5列开始)已被忽略。
关于你的错误:

DECLARE
    BK1 userDefined.TYPE_TABNUMBER;
begin
    BK1 := 48715788;

您应该使用数字作为集合的一部分来初始化集合(而不是尝试将数字分配给集合变量):

DECLARE
    BK1 userDefined.TYPE_TABNUMBER;
begin
    BK1 := userDefined.TYPE_TABNUMBER(48715788);

或:

DECLARE
    BK1 userDefined.TYPE_TABNUMBER;
begin
    BK1 := userDefined.TYPE_TABNUMBER();
    BK1.EXTEND();
    BK1(BK1.COUNT) := 48715788;

fiddle

相关问题