Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对象类型中memebr函数中的Select into出现Oracle错误_Oracle_Plsql_User Defined Types - Fatal编程技术网

对象类型中memebr函数中的Select into出现Oracle错误

对象类型中memebr函数中的Select into出现Oracle错误,oracle,plsql,user-defined-types,Oracle,Plsql,User Defined Types,在类型内部设置成员函数时遇到问题。我是PL/SQL新手,几天来一直试图解决这个问题,但都没有成功。 我的目标是有一个单层_类型的方法,将计算不同的身体模型类型的数量 在玩了很多次之后,我发现唯一的问题似乎是我的select语句,但我收到的唯一错误是“警告:执行已完成,但有警告” 求求你,求求你帮帮我 正如OracleUser所说,您可以在脚本中的每个PL/SQL部分之后添加显示错误,以显示生成的任何错误;或者,您可以随时查询user\u errors视图,查看针对所有PL/SQL对象的错误 您正

在类型内部设置成员函数时遇到问题。我是PL/SQL新手,几天来一直试图解决这个问题,但都没有成功。 我的目标是有一个单层_类型的方法,将计算不同的身体模型类型的数量

在玩了很多次之后,我发现唯一的问题似乎是我的select语句,但我收到的唯一错误是“警告:执行已完成,但有警告”


求求你,求求你帮帮我

正如OracleUser所说,您可以在脚本中的每个PL/SQL部分之后添加
显示错误
,以显示生成的任何错误;或者,您可以随时查询
user\u errors
视图,查看针对所有PL/SQL对象的错误

您正在添加成员过程,但在对象规范中指定了返回类型。如果它返回了一些东西,那么它必须是一个函数,而你在身体中已经正确地做到了

ALTER TYPE singleDeck_type ADD MEMBER function count_bodytype
  RETURN NUMBER CASCADE;
/
但正文仍有错误:

ORA-00904: "S"."BODYREF": invalid identifier
您有一个
bodyModel
字段,它是一个
REF
,因此我只能认为您希望执行以下操作:

  WHERE DEREF(s.bodyModel)=DEREF(self.bodyModel);


虽然您的查询似乎在计算与当前车型相同的单层客车的数量,但这与您在问题“计算不同车型的数量”中所说的不匹配。这听起来像是需要一个for而不是member方法。

SHOW ERROR
会列出错误。当我输入SHOW ERROR时,它会显示“No errors”。这是因为,
SHOW ERROR
只会显示上次编译的DDL的错误列表。因此,当您运行一个大列表时,您必须识别导致错误的一次。然后尝试单独运行它。或者查询
user\u errors
视图,该视图将显示所有无效PL/SQL对象的错误。成员过程而不是成员函数只是一个新手错误。当尝试所有我能想到的方法来修复它时,我尝试将函数更改为一个过程,但在发布之前忘记将其更改回原来的状态。比较表modelID与对象modelID修复了我的问题。在所有这些之后,尽管我仍然无法让Show error或User error显示任何内容,但我发现我可以通过在不同区域使用的界面查看错误。谢谢大家的帮助。你是对的,我正在计算相同车身型号的单层公共汽车的数量。
  WHERE DEREF(s.bodyModel)=DEREF(self.bodyModel);
  WHERE DEREF(s.bodyModel).modelID=DEREF(self.bodyModel).modelID;