sitemap

RSS地图

收藏本站

设为首页

Oracle研究中心

当前位置:Oracle研究中心 > 故障案例 >

【案例】Oracle报错PLS-00102 PLS-00169产生原因和MOS官方解决办法

时间:2016-11-11 20:34   来源:Oracle研究中心   作者:代某人   点击:

天萃荷净 PLS-00102分析器堆栈溢出,因为嵌套太深
原因: PL / SQL语句的语法,解析器,检查使用的数据结构称为堆栈;在PL / SQL块的嵌套级别数超过堆栈的容量。

行动:块结构重组,以避免嵌套太深水平。例如,移动到一个更高水平的最低级别的子块。


PLS-00103' 串 ',但预计下列操作之一:“ 串 “”},
原因:此错误消息是从解析器。它发现了一个令牌(语言元素),在这方面是不适当的。

动作:检查以前的令牌以及一个错误消息。行和列在错误消息给出的数字是指故障的语言结构。


PLS - 00104调用过程'的空参数列表字符串,必须省略
原因:在子程序调用,子程序的名称,其次是一个空的参数列表。例如,被称为过程P为P()。这是不允许的。

行动:删除空的参数列表。在这个例子中,改变程序调用体育


允许PLS-00105在大多数类型'向前声明字符串 “
原因:超过一种类型的向前声明是多余的。

行动:删除所有,但一个前向声明。


PLS-00108声明单位必须是单一的变量声明
原因:当检查一个声明单元(顶层声明块没有在BEGIN ...完),PL / SQL中发现,有一个以上的项目宣布,该项目不是一个变量声明。一个表是一种常见的变量声明在单元级别。定义表,编译申报编制单位,但只有一次被允许。

行动:在单独的声明单位声明的变量。


未知异常PLS-00109名' 字符串 '在PRAGMA EXCEPTION_INIT中
原因:无申报异常的名称在EXCEPTION_INIT杂引用该??pragma的范围内被发现。

行动:确保该pragma如下异常申报和相同的范围内。


在这种情况下不允许PLS-00110绑定变量的字符串 “
原因:绑定变量,那就是用冒号前缀的标识符,在不适当的情况下被发现。

行动:取出结肠或更换合适的对象的绑定变量。


PLS-00111的文件中评论
原因:评论评论发起人(/ *),但之前的注释终止符(* /)被发现,遇到文件结束标记。

行动:删除评论发起或添加评论终止。陪同错误消息的行数和列数是指开始前最后的评论引发的法律令牌。


PLS-00112结束行引号的标识符
原因:带引号的标识符有一个开端引号(“),但前结束引号(”)被发现,遇到行结束标记。

行动:开始报价删除或添加结束引号。陪同错误消息的行数和列数是指以引号的标识符的开头。


PLS-00113完标识符字符串 “必须符合” 串行“ 的字符串,字符串列
原因:关键字年底,终止某些语言构造(如循环,块,功能和程序),你可以选择把该构造的名称。例如,在循环大号的定义,你可以写研究完这个错误发生时可选名称不匹配给定的语言结构的名称。它通常是一个拼写错误的标识符或块结构故障造成的。

行动:确保完标识符的拼写与语言结构的名称和块结构是正确的。


PLS-00114标识的字符串太长
原因:一个PL / SQL变量的名称是超过30个字符。合法的标识符(包括带引号的标识符)有30个字符的最大长度。字符串文字可能有误括在双引号代替单引号,在这种情况下,PL / SQL中认为是带引号的标识符。

行动:缩短标识符。


PLS-00115 pragma必须按照“宣言字符串 “
原因:该pragma是指一个PL / SQL对象,不申报或不参考范围内。标识符必须声明之前,他们都在使用一个pragma;不允许向前引用。

行动:检查拼写和声明的标识符。也证实该声明被放置在正确的块结构。


PLS-00116 where子句中的重复表表达式
原因:两个或两个以上的条款中找到DELETE,选择或更新语句。WHERE 子句中指定下表中的行处理的条件。条件可以包含多个逻辑表达式用AND或OR连接,但可以包含一份声明中只有一个条款。

行动:删除的WHERE子句,如果有必要,连接通过逻辑表达式,或OR。


PLS-00117重复连接表表达式第
原因:连接两个或两个以上条款被发现在一个SELECT语句。按的CONNECT子句定义用于返回分层秩序中的行的关系。关系可以包含两个表达式,关系运算符(如=或!=)分隔,但一份声明中可以只包含一个CONNECT BY子句。

行动:删除一个的CONNECT条款,如有必要,由单独的表达式关系运算符。


PLS-00118重复组由子句中的表表达式
原因:两个或两个以上由集团条款被发现在一个SELECT语句。集团条款清单列用于为每个组选定的行,形成一个汇总行的表达式。列表可以包含多个列由逗号分隔的表达式,但一份声明中可以包含子句只有一组。

行动:删除一个集团的条款,如果有必要,单独列由逗号表达式。


PLS-00119表表达式的重复有第
原因:两个或两个以上的HAVING子句中发现的SELECT语句。有子句指定行组(由形成的条件下其中集团子句)在结果中包括。条件可以包括由AND或OR连接多个逻辑表达式,但一份声明中只能包含一个HAVING子句。

行动:删除一个的HAVING子句,如果有必要,连接通过逻辑表达式,或OR。


PLS-00120不适当的论点,在OPEN语句
原因:在OPEN语句CURSOR_NAME参数拼写错误,或不依法宣告的游标。

动作:检查拼写的CURSOR_NAME参数。确保光标妥善宣布。


PLS-00121集函数计数可能需要作为一个参数*
原因:在一个SQL组比count函数的参数列表中使用星号(*)的选项。例如,代码可能看起来像这样:

选择SUM(*)FROM EMP emp_count  - 应该是COUNT(*)

只算允许使用星号的选项,它在一个表返回的行数。

行动:从参数列表中删除星号的选项和替换一个表达式,它是指一个或多个数据库列。


PLS-00122 字符串作为分隔,只允许特定内置功能
原因:几个内置功能使用关键字(而不是逗号)作为参数分隔。这些内置的功能不同的函数使用关键字作为参数分隔。

行动:更正参数列表或更改函数的名称。


PLS-00123程序太大
原因: PL / SQL的主要是专为强大的事务处理。专用设计的一个后果是,PL / SQL编译器对块大小的限制。限制取决于PL / SQL块中的语句结构。超出限额的块,导致此错误。

行动:最好的解决办法是定义的子程序,它可以存储在Oracle数据库中的模块化方案。另一个办法是打破计划分为两个子块。有首块插入第二块到一个临时数据库表需要的任何数据。然后,有第二块从表中选择数据。


预计在第一个参数EXCEPTION_INIT杂PLS-00124的异常的名称
原因:第一个参数传递的EXCEPTION_INIT杂异常名以外的东西。第一个参数必须是一个合法声明的异常的名称。

行动:更换具有法律声明异常的名称的第一个参数。


PLS-00125型名称预期
原因:当一个常量或变量被声明,没有指定其数据类型。例如,代码可能看起来像这样:

圆周率常数:= 3.14159;  - 应该是不变的实际:= 3.14159

每常数和变量必须有一个数据类型,它指定存储格式的限制,和值的有效范围。

行动:供应类型的名称。


PLS-00126选择不允许
原因:在SQL语句中使用的所有快捷方式指定系统权限或语句选项。PL / SQL中不支持的所有快捷方式。

行动:从SQL语句中删除的所有快捷方式。


PLS-00127的Pragma 字符串是不支持的杂
原因:命名的杂(编译器指令)是由PL / SQL支持的。该pragma名称可能拼写错误,或可能出现故障的pragma语法。

行动:检查的pragma名称的拼写,并确保使用正确的语法。


PLS-00128非法参数字符串为PRAGMA
原因:传递给名为杂(编译器指令)参数的数量(实际参数)是不正确的。从参数列表中的一个必需的参数被省略,或该pragma的语法是错误的(例如,一个逗号,可能会缺少两个参数之间)。

行动:提供缺少的参数,或纠正错误的语法。


PLS-00129的Pragma接口只支持?作为其第一个参数
原因:第一个参数传递给指定的主机其他语言比C。目前的杂界面,C是唯一的宿主语言支持。参数可能会拼写错误,或者该pragma语法可能出现故障(例如,一个逗号,可能会缺少两个参数之间)。

动作:检查拼写的第一个参数,这应该是C,并确保使用正确的语法。


PLS-00130的Pragma 字符串,预计第一个参数是一个过程/函数/包/光标
原因:传递给名为杂(编译器指令)第一个参数(实际参数)不是一个子程序,包,或光标的名称,如需要。参数可能会拼写错误,或者该pragma语法可能出现故障(例如,一个逗号,可能会缺少两个参数之间)。

行动:检查拼写的第一个参数,并确保使用正确的语法。


PLS-00131的Pragma 字符串预计第二个参数是一个过程
原因:传递给名为杂(编译器指令)的第二个参数(实际参数)是不是一个程序的名称,需要。参数可能会拼写错误,或者该pragma语法可能出现故障(例如,一个逗号,可能会缺少两个参数之间)。

行动:检查拼写的第二个参数,并确保使用正确的语法。


PLS-00132的Pragma RESTRICT_REFERENCES不支持字符串
原因:其中一个参数传递给杂RESTRICT_REFERENCES下列各项中,不作为:WNDS,WNPS,RNDS,RNPS。参数可能会拼写错误,或可能出现故障的pragma语法(例如,一个逗号可能会丢失两个参数之间)

行动:检查拼写的所有参数,并确保使用正确的语法。


PLS-00133的Pragma 字符串,预计第一个参数是一个标识符或字符串字面
原因:第一个参数(实际参数)传递到指定的杂(编译器指令)是不是一个标识符或字符串文字,按要求。参数可能会拼写错误,或者该pragma语法可能出现故障(例如,一个逗号,可能会缺少两个参数之间)。

行动:检查拼写的第一个参数,并确保使用正确的语法。


PLS-00134的Pragma 字符串预计第二个参数是一个标识符或字符串字面
原因:传递给名为杂(编译器指令)的第二个参数(实际参数)是不是一个标识符或字符串文字,按要求。参数可能会拼写错误,或者该pragma语法可能出现故障(例如,一个逗号,可能会缺少两个参数之间)。

行动:检查拼写的第二个参数,并确保使用正确的语法。


PLS-00135的Pragma 字符串预计,第三个参数是一个标识符,字符串或数字的文字
原因:第三个参数(实际参数)传递到指定的杂(编译器指令)是不是一个标识符或字符串文字,如需要。参数可能会拼写错误,或者该pragma语法可能出现故障(例如,一个逗号,可能会缺少两个参数之间)。

行动:第三个参数的拼写检查,确保使用正确的语法。


PLS-00138精密二进制类型必须是一个8,16或32
原因:无效的精度被指定为符号或无符号的二进制类型。

行动:指定精度为8,16或32。


PLS - 00139重复在子程序表达的外部名称规范
原因:该子程序被发现有两个外部名称规范。

行动:删除外部名称规格之一。


PLS - 00140重复在子程序表达的外部库规范
原因:子程序被发现有两个外部库规格。

行动:删除一个外部库规格。


PLS - 00141重复的外部参数在子程序表达方式规范
原因:子程序被发现有两个外部参数样式规格。

行动:删除一个外部参数样式规格。


PLS-00142重复的外部规范参数在子程序表达列表
原因:子程序被发现有两个外部参数样式规格。

行动:删除一个外部参数样式规格。


PLS - 00143重复在子程序表达的外部语言规范
原因:该子程序被发现有两个外部的语言规范。

行动:删除一个外部语言规范。


PLS-00144复制外部呼叫在子程序表达标准规范
原因:子程序被发现有两个外部调用标准规范。

行动:删除外部调用标准规格之一。


PLS-00145复制外部子程序表达与上下文规范
原因:该子程序被发现有两个外部上下文规格。

动作:移除外部上下文的规格之一。


PLS-00146的重复外部可信/不可信的规范子程序表达
原因:子程序被发现有两个外部受信任/不信任规格。

行动:删除外部可信/不可信的规格之一。


PLS-00147库文件规范字符串为空
原因:一个零长度字符串的库文件规范。

行动:指定一个库文件规范非零长度字符串。


PLS-00148只有1这种类型的杂允许每个子程序
原因:子程序被发现有两个RESTRICT_REFERENCES的PRAGMA。

行动删除的pragma RESTRICT_REFERENCES之一。


PLS-00150:字符串,但预期:整数
原因:这个错误发生在创建一个PL / SQL外部类型:[签字无符号二进制整数(精度)。它可以只在一个CREATE TYPE语句引用。这种类型的非可查询。提供一些“整数”以外。

行动:使用不同类型的重试操作。


PLS-00151表达式或变量是非法至PLS / QL的类型:字符串
原因: A型用于不属于的PL / SQL。这种类型只能在CREATE TYPE语句被引用,是一个非可查询的数据类型。

行动:使用不同类型的重试操作。


PLS-00152的指针类型,可能只引用一个对象的类型。
原因:不属于一个指针类型的PL / SQL只能引用一个对象的类型。这种类型只能在CREATE TYPE语句被引用,是一个非可查询的数据类型。

行动:使用不同类型的重试操作。


PLS-00153一个字符串类型只能作为一个对象类型的属性。
原因:一个指针或[签字/无符号]二进制整数只能被用于对象类型的属性。这些类型只能在CREATE TYPE语句被引用,非可查询的数据类型。这些外部的PL / SQL类型以外的对象的类型。

行动:使用不同类型的重试操作。


PLS-00154的对象类型可能有只有1地图或1阶的方法。
原因:被宣布多个地图或命令功能。一个对象类型可以有只有一个地图的功能,或一阶的功能,但不能同时。

行动:删除所有类型的地图或秩序的职能之一。


PLS-00155只有一个功能,可能是一张地图,订单或构造方法。
原因:一个过程,作为地图,秩序,或构造方法的声明。唯一的功能可以是地图,顺序或构造方法。

行动:改变程序的功能。


PLS-00156空约束不支持对象的属性。
原因:在一个对象的一个属性指定一个空的约束。这是不支持的。

行动:删除约束。


PLS-00157 AUTHID只允许在架构级方案
原因: AUTHID子句指定为内包或类型的子程序。这些条款只支持顶级的存储过程,包,类型。

行动:删除该条款。


PLS-00160的AUTHID必须指定CURRENT_USER或DEFINER的
原因:只有两个允许authid的选项的CURRENT_USER和DEFINER的。

行动:修正的AUTHID条款指定CURRENT_USER或DEFINER的。


PLS-00161的Pragma 字符串预计第三个参数是一个标识符或字符串文字
原因:第三个参数(实际参数)传递到指定的杂(编译器指令)是不是一个标识符或字符串文字时,有一个第四个参数的pragma。参数可能会拼写错误,或者该pragma语法可能出现故障(例如,一个逗号,可能会缺少两个参数之间)。

行动:第三个参数的拼写检查,确保使用正确的语法。


PLS-00162的Pragma 字符串预计第四个参数是一个正整数文字
原因:传递给名为杂(编译器指令)的第四个参数(实际参数)不是一个数字的文字,需要。参数可能会拼写错误,或者该pragma语法可能出现故障(例如,一个逗号,可能会缺少两个参数之间)。

行动:第四个参数的拼写检查,并确保使用正确的语法。


PLS-00164游标子??查询不支持此版本
原因:此功能尚未实现。

行动:不需要任何动作。


PLS-00165调用语句在PL / SQL不支持
原因: CALL语句,PL / SQL源中发现的。

操作:使用一个普通的PL / SQL函数或过程调用。


PLS-00166日期,时间或时间戳记文字的格式错误
原因:日期,时间或时间戳记文字的内容不符合预期的格式YYYY毫米-DD HH24:MI:ssxfftzh:TZM'。

行动:使用正确的格式的datetime文字。


PLS-00167关键字散装在一个错误的情况下使用
原因:非法使用关键字散装。例如,大部分用于无INTO子句。

动作:删除散装关键字。


PLS-00168重复修饰符规范“ 字符串 “
原因:一个方法或对象类型修饰符指定了一次以上。

行动:删除所有,但一个重复修饰的发生。




--------------------------------------ORACLE-DBA----------------------------------------

最权威、专业的Oracle案例资源汇总之【案例】Oracle报错PLS-00102 PLS-00169产生原因和MOS官方解决办法

本文由大师惜分飞原创分享,网址:http://www.oracleplus.net/arch/1239.html

Oracle研究中心

关键词:

PLS-00102

PLS-00169