Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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
Sql 错误(3,34):PLS-00201:必须声明标识符XXX_Sql_Database_Oracle_Plsql_Oracle12c - Fatal编程技术网

Sql 错误(3,34):PLS-00201:必须声明标识符XXX

Sql 错误(3,34):PLS-00201:必须声明标识符XXX,sql,database,oracle,plsql,oracle12c,Sql,Database,Oracle,Plsql,Oracle12c,我在Oracle Database 12c Enterprise Edition 12.1.0.2.0-64位生产数据库中有此过程,但每次尝试重新编译时都会出现此错误。这个过程是从另一个DB复制粘贴的,所以现在出现了错误,因为在另一个DB中包可以正常工作。。。然而,我得到了这个错误: Error(1,35): PLS-00304: cannot compile body of 'P_COUNTRY_PLATS' without its specification 创建或替换包“P_COUNT

我在Oracle Database 12c Enterprise Edition 12.1.0.2.0-64位生产数据库中有此过程,但每次尝试重新编译时都会出现此错误。这个过程是从另一个DB复制粘贴的,所以现在出现了错误,因为在另一个DB中包可以正常工作。。。然而,我得到了这个错误:

Error(1,35): PLS-00304: cannot compile body of 'P_COUNTRY_PLATS' without its specification

创建或替换包“P_COUNTRY_PLATS”是
过程createNew(p_msisdn在lopes.country_plats.recipient_msisdn%类型中
,坡度中的p_通道。国家/地区平台。通道%类型
,lopes中的p_消息。国家/地区平台。消息%TYPE
);
过程createNew(p_msisdn在lopes.country_plats.recipient_msisdn%类型中
,坡度中的p_通道。国家/地区平台。通道%类型
,lopes中的p_消息。国家/地区平台。消息%TYPE
,在lopes.country\u plats.request\u date%类型中的p\u request\u date
,p_action_history_id在lopes.country_plats.action_history_id%类型中
);
过程createNew(p_msisdn在lopes.country_plats.recipient_msisdn%类型中
,坡度中的p_通道。国家/地区平台。通道%类型
,lopes中的p_消息。国家/地区平台。消息%TYPE
,在lopes.country\u plats.request\u date%类型中的p\u request\u date
,p_action_history_id在lopes.country_plats.action_history_id%类型中
,p_ac_计划的行动\u id在lopes.country_plats.ac_计划的行动\u id%类型
);
程序getNextMsgToSend(斜坡中的p_通道。国家/地区平台。通道%TYPE
,p_ip_地址输入输出VARCHAR2
,p_消息输入输出坡度。国家/地区平台。消息%TYPE
,p_msg_id IN OUT lopes.country_plats.country_plats_id%类型
);
过程getNextMsgToSendByImei(p_imei在VARCHAR2中,p_消息在VARCHAR2中,p_消息在VARCHAR2中,p_msg_id在VARCHAR2中);
程序设置状态(p_msg_id在编号中,p_状态在VARCHAR2中);
程序取消计划的操作;
程序取消计划的操作(p\U msg\U id编号);
结束;
/
创建或替换包体“P_COUNTRY_PLATS”为
过程createNew(p_msisdn在lopes.country_plats.recipient_msisdn%类型中
,坡度中的p_通道。国家/地区平台。通道%类型
,lopes中的p_消息。国家/地区平台。消息%TYPE
)
是
开始
createNew(p_msisdn、p_通道、p_消息、sysdate、null、null);
结束;
过程createNew(p_msisdn在lopes.country_plats.recipient_msisdn%类型中
,坡度中的p_通道。国家/地区平台。通道%类型
,lopes中的p_消息。国家/地区平台。消息%TYPE
,在lopes.country\u plats.request\u date%类型中的p\u request\u date
,p_action_history_id在lopes.country_plats.action_history_id%类型中
)
是
开始
createNew(p_msisdn、p_通道、p_消息、p_请求_日期、p_操作_历史_id、null);
结束;
过程createNew(p_msisdn在lopes.country_plats.recipient_msisdn%类型中
,坡度中的p_通道。国家/地区平台。通道%类型
,lopes中的p_消息。国家/地区平台。消息%TYPE
,在lopes.country\u plats.request\u date%类型中的p\u request\u date
,p_action_history_id在lopes.country_plats.action_history_id%类型中,
lopes.country\u plats.ac\u scheduled\u action\u id%类型中的p\u ac\u计划的\u action\u id
)
是
PsdRetryNbroutgoing_psd编号;
开始
PsdRetryNbr:=所有者的p_ru.getPsdRetryNbr(p_msisdn);
|u owner.p|db|u trc.trc(1007),-| p|u channel | |-| p|u msisdn |-| p| u message |-| p|u请求| u日期|-| p| u行动| u历史| |-| p| u行动| id | | | | | |-| | | | | | | | | | p |计划;
插入lopes.country\u平台
(国家/地区\u平台\u id、频道、收件人\u msisdn、消息、请求\u日期、状态、操作\u历史\u id、ac\u计划的\u操作\u id、剩余的\u重试\u nbr)值(
lopes.SEQ_COUNTRY_PLATS_ID.nextval
,p_海峡
,p_msisdn
,p_讯息
,p_请求_日期
“R”
,p_action_history_id
,p_ac_计划的_操作_id
,PsdRetryNbr
); 
结束;
程序getNextMsgToSend(斜坡中的p_通道。国家/地区平台。通道%TYPE
,p_ip_地址输入输出VARCHAR2
,p_消息输入输出坡度。国家/地区平台。消息%TYPE
,p_msg_id IN OUT lopes.country_plats.country_plats_id%类型
)
是
开始
选择owner.p\u ru.getRemoteUnitCurrentIP(收件人msisdn)的op.country\u plats\u id,op.message
进入p_msg_id、p_消息、p_ip_地址
来自lopes.country_plats op
其中((op.status='R')
或((op.status='P')

和(op.outgoing_date+(of_owner.p_ru.getpsdretrydley(op.recipient_msisdn)/(60*24))字符是PL/SQL块的终止符,脚本缺少它们

更改:

end;


create or replace PACKAGE BODY                     "P_COUNTRY_PLATS" is
致:

并更改最终版本:

end;PLATS
致:


在终止包规范的
结束;
语句后的新行上放置一个
/
字符。然后在包体的末尾将其更改为
结束平台;
,并在以下新行上放置另一个
/
。嗯?标题:错误(3,34):PLS-00201:必须在消息体中声明标识符XXX:错误(1,35):PLS-00304:在没有规范的情况下无法编译“P_COUNTRY_PLATS”的正文。不同的错误代码(201 vs 304),不同的错误消息-显然这两个错误性质不同,在代码中的位置不同(第3行,位置34 vs.第1行,位置35)。那么:是哪一个?这是如何发生的?(“这一个”如果你发布了一条关于一个错误的消息,如正文中所述,并且给出了一个完全不同的错误的标题。)@en Lopes-那么我们应该解决哪一个问题-PL-00201或PLS-00304?你注意到这家伙的标题和消息正文中的内容不匹配吗?
end;
/

create or replace PACKAGE BODY                     "P_COUNTRY_PLATS" is
end;PLATS
end P_COUNTRY_PLATS;
/