PLS-00103:遇到符号“;”当期待以下之一时:

     2023-03-27     177

关键词:

【中文标题】PLS-00103:遇到符号“;”当期待以下之一时:【英文标题】:PLS-00103: Encountered the symbol ";" when expecting one of the following: 【发布时间】:2013-04-30 20:46:11 【问题描述】:

我正在尝试插入用户安全问题的答案,以用于密码重置功能。

Ellucian Banner v8+ 提供了一个 API 来运行它,我对他们的 API 非常陌生,从下面的错误消息的外观来看,我离正确运行它还很远。任何帮助表示赞赏。

我尝试在 Oracle SQL Developer 中运行它:

execute gb_pin_answer.p_create(
    P_PIDM        =>    12345,
    P_NUM         =>    1,
    p_gobqstn_id  =>    1,
    p_qstn_desc   =>    '',
    p_ansr_desc   =>    'David',
    p_ansr_salt   =>    'A123B456',
    p_user_id     =>    'W:H12345678',
    p_data_origin =>    'WWW_USER',
    p_rowid_out         OUT gb_common.internal_record_id_type
);

这是在黑暗中拍摄的,但我想试一试,尝试执行该包的 p_create 函数时会显示错误消息:

从命令的第 15 行开始出错:执行 gb_pin_answer.p_create( 错误报告:ORA-06550: line 1, column 30: PLS-00103: Encountered the 象征 ”;”预期以下情况之一时:

( ) - + case mod new not null table continue avg count 当前存在 max min prior sql stddev sum variance 执行 multiset 两个领先的尾随 forall 合并年月日小时 分 秒 timezone_hour timezone_minute timezone_region timezone_abbr 时间 时间戳 间隔 日期 06550. 00000 - “第 %s 行,第 %s 列:\n%s” *原因:通常是 PL/SQL 编译错误。 *行动:

从命令的第 16 行开始出错:P_PIDM => 12345,错误 报告:未知命令

从命令的第 17 行开始出错:P_NUM => 1,错误报告: 未知命令

从命令的第 18 行开始出错:p_gobqstn_id => 1,错误报告: 未知命令

从命令的第 19 行开始出错:p_qstn_desc => '', Error 报告:未知命令

从命令的第 20 行开始出错:p_ansr_desc => 'David', Error 报告:未知命令

从命令的第 21 行开始出错:p_ansr_salt => 'A123B456', 错误报告:未知命令

从命令的第 22 行开始出错:p_user_id => 'W:H12345678', 错误报告:未知命令

从命令的第 23 行开始出错:p_data_origin => 'WWW_USER', 错误报告:未知命令

从命令中的第 24 行开始出错:p_rowid_out OUT gb_common.internal_record_id_type 错误报告:未知命令

从命令中的第 25 行开始的错误:) 错误报告:未知命令

这是我读到使用这个函数的地方,p_create:http://inb1.banner.ecu.edu:9090/api_erd_index_guide/api/general/gb_pin_answer.html#p_create

更新:出错的代码:

SET SERVEROUTPUT ON
declare
  l_rowid_out gb_common.internal_record_id_type;
BEGIN
  gb_pin_answer.p_create(P_PIDM => 36706, P_NUM => 1, P_GOBQSTN_ID => 1, P_QSTN_DESC => '', P_ANSR_DESC => 'David', P_ANSR_SALT => 'HB123456', P_USER_ID => 'H00036657', P_DATA_ORIGIN => 'WWW_USER', P_ROWID_OUT => 1_rowid_out);
  dbms_output.put_line('rowid: ' || l_rowid_out);
END;

错误信息:

错误报告:ORA-06550:第 4 行,第 199 列:PLS-00363:表达式“1” 不能用作分配目标 ORA-06550:第 4 行,第 3 列: PL/SQL:语句被忽略 06550. 00000 - “第 %s 行,第 %s 列:\n%s” *原因:通常是 PL/SQL 编译错误。 *行动:

【问题讨论】:

【参考方案1】:

问题是execute。这实际上是一个简短的匿名 PL/SQL 块的简写,不能跨行拆分。 (除了可能有一个延续字符,但如果我曾经有过这样的工作,我就记不起来了)。只有第一行被翻译,所以它正在有效地尝试运行:

begin execute gb_pin_answer.p_create(; end;
/

... 它非常合理地不喜欢以p_create(; 结尾的命令。然后将过程调用的其余部分视为 10 个单独的命令,这些命令会生成您遇到的其他错误,并且它们在这种情况下也是合理的。

解决方案是将整个过程调用放在一行中,这会使其更难阅读;或者干脆使用你自己的块,而不是依赖execute

begin
    gb_pin_answer.p_create(
        ...
    );
end;
/

最后一个参数不对;来自OUT ... 的位需要替换为=> some_value,就像你对其他人所做的那样。但它是一个输出参数,所以你需要一些东西来输入值。没有看到你正在运行的脚本中还有什么,我无法判断你是否已经处理过它,但是使用这种模式你可以可能只是在匿名块中添加一个变量:

set serveroutput on
declare
    l_rowid_out gb_common.internal_record_id_type;
begin
    gb_pin_answer.p_create(
        ...
        p_rowid_out => l_rowid_out
    );
    -- optional
    dbms_output.put_line('rowid: ' || l_rowid_out);
end;
/

【讨论】:

我试过了: SET SERVEROUTPUT ON declare l_rowid_out gb_common.internal_record_id_type; BEGIN gb_pin_answer.p_create(P_PIDM => 36706, P_NUM => 1, P_GOBQSTN_ID => 1, P_QSTN_DESC => '', P_ANSR_DESC => 'David', P_ANSR_SALT => 'HB123456', P_USER_ID => 'H00036657', P_DATA_ORIGIN => 'WWW_USER', P_ROWID_OUT => 1_rowid_out); dbms_output.put_line('rowid: ' || l_rowid_out);结尾; / 它返回的错误消息片段:错误报告:ORA-06550:第 4 行,第 215 列:PLS-00103:在预期以下情况之一时遇到符号“”:)、* & = - + at in is mod 余数 not rem or != or ~= >= and or like like2 like4 likec || multiset member submultiset 在 "" 之前插入符号 ", 以继续。06550. 00000 - "line %s, column %s:\n%s" *原因:通常是 PL/SQL 编译错误。*操作: @Brad - 你真的有 1_rowid_out 而不是 l_rowid_out 作为参数吗? 是的,我不确定需要传递什么值。我是这些包的新手。 @Brad 如果你用反引号包围代码和错误部分,你的 cmets 会更容易阅读,顺便说一句......尽管它们对于 cmets 来说真的太长了......我会看看是否我可以重现那个。但是1_rowid_out 是错误的,它必须与您声明的变量匹配。如果错误报告实际上是... the symbol "_" when ...,那就是问题所在;只需将1_ 更改为l_【参考方案2】:

从上次编辑中,我发现您将 1 误认为是 l... 1_rowid_out 而不是 l_rowid_out

您不能像您尝试的那样以数字开头。

【讨论】:

【参考方案3】:

我们在混合 Dapper 和原生 Oracle MDA 结构时遇到了这个错误。特别尝试将 WithConnection 构造与本机 Oracle 驱动程序一起使用。它不喜欢这样,并返回了一个非常相似且无意义的错误消息“ORA-06550:第 1 行,第 259 列:PLS-00103:遇到符号...等等等等”

【讨论】:

PLS-00103:在期待以下之一时遇到符号“&”:%符号“%被插入在“&”之前继续[关闭]

】PLS-00103:在期待以下之一时遇到符号“&”:%符号“%被插入在“&”之前继续[关闭]【英文标题】:PLS-00103:Encounteredthesymbol"&"whenexpectingoneofthefollowing:%Thesymbol"%wasinsertedbefore"&"tocontinue[closed]【发布... 查看详情

PLS-00103:预期时遇到符号“(”

】PLS-00103:预期时遇到符号“(”【英文标题】:PLS-00103:Encounteredthesymbol"("whenexpecting【发布时间】:2016-03-0305:45:18【问题描述】:以下过程有什么问题?我收到以下错误。行/列错误1/107PLS-00103:在期待其中之一时遇到符... 查看详情

错误:PLS-00103:在预期以下情况之一时遇到符号“)”

】错误:PLS-00103:在预期以下情况之一时遇到符号“)”【英文标题】:Error:PLS-00103:Encounteredthesymbol")"whenexpectingoneofthefollowing【发布时间】:2017-12-1405:57:11【问题描述】:当我在PL/SQL开发人员中按F8来创建PackageMyPackage时,... 查看详情

PLS-00103:遇到符号“;”预期以下情况之一时:

】PLS-00103:遇到符号“;”预期以下情况之一时:【英文标题】:PLS-00103:Encounteredthesymbol";"whenexpectingoneofthefollowing:【发布时间】:2013-11-1821:50:28【问题描述】:我的代码有什么问题SQL>declare2marknumber:=50;3begin4mark:=&mark;5... 查看详情

PLS-00103:在预期以下情况之一时遇到符号“ON”

】PLS-00103:在预期以下情况之一时遇到符号“ON”【英文标题】:PLS-00103:Encounteredthesymbol"ON"whenexpectingoneofthefollowing【发布时间】:2020-07-0516:56:47【问题描述】:请注意:我尝试了其他堆栈溢出问题,但没有一个能解决我... 查看详情

PLS00103:在预期以下情况之一时遇到符号“I”

】PLS00103:在预期以下情况之一时遇到符号“I”【英文标题】:PLS00103:Encounteredthesymbol"I"whenexpectingoneofthefollowing【发布时间】:2017-08-1507:34:11【问题描述】:亲爱的,我想做一个功能来清理我的电话号码,我写了下面的函... 查看详情

PLS-00103:遇到符号“;”预期以下情况之一时:。 ( ) * @ % & - + /

】PLS-00103:遇到符号“;”预期以下情况之一时:。()*@%&-+/【英文标题】:PLS-00103:Encounteredthesymbol";"whenexpectingoneofthefollowing:.()*@%&-+/【发布时间】:2015-01-0414:45:03【问题描述】:编译失败,第10行(14:27:16)与编译错误相... 查看详情

PLS-00103:在预期以下情况之一时遇到符号“END”

】PLS-00103:在预期以下情况之一时遇到符号“END”【英文标题】:PLS-00103:Encounteredthesymbol"END"whenexpectingoneofthefollowing【发布时间】:2011-07-1810:58:37【问题描述】:我收到此错误:[sqlplus]Truncatingdimensiondw_DM_Application[sqlplus]END... 查看详情

PLS-00103:在预期以下情况之一时遇到符号“TEST_PKG”:;

】PLS-00103:在预期以下情况之一时遇到符号“TEST_PKG”:;【英文标题】:PLS-00103:Encounteredthesymbol"TEST_PKG"whenexpectingoneofthefollowing:;【发布时间】:2015-10-2516:11:32【问题描述】:我收到这个错误错误:检查编译器日志6/3PLS-00... 查看详情

PLS-00103:在预期以下之一时遇到符号“文件结尾”

】PLS-00103:在预期以下之一时遇到符号“文件结尾”【英文标题】:PLS-00103:Encounteredthesymbol"end-of-file"whenexpectingoneofthefollowing【发布时间】:2016-10-1213:17:43【问题描述】:这条PL/SQL语句:FUNCTIONf_comparestring(ps_string1VARCHAR2,ps_... 查看详情

为啥我会收到此错误? PLS-00103:在预期以下情况之一时遇到符号“CREATE”:

】为啥我会收到此错误?PLS-00103:在预期以下情况之一时遇到符号“CREATE”:【英文标题】:WhyamIgettingthiserror?PLS-00103:Encounteredthesymbol"CREATE"whenexpectingoneofthefollowing:为什么我会收到此错误?PLS-00103:在预期以下情况之一时... 查看详情

错误:PLS-00103:在预期以下情况之一时遇到符号“END”

】错误:PLS-00103:在预期以下情况之一时遇到符号“END”【英文标题】:Error:PLS-00103:Encounteredthesymbol"END"whenexpectingoneofthefollowing【发布时间】:2013-03-2306:07:56【问题描述】:我写了以下包和包体:createorreplacepackagediscountsis... 查看详情

PLS-00103:在 oracle 函数中预期以下之一时遇到符号“IF”

】PLS-00103:在oracle函数中预期以下之一时遇到符号“IF”【英文标题】:PLS-00103:Encounteredthesymbol"IF"whenexpectingoneofthefollowinginoraclefunction【发布时间】:2015-09-3009:06:59【问题描述】:我正在编写以下函数,其中出现PLS-00103:Enc... 查看详情

错误:PLS-00103:在预期以下情况之一时遇到符号“AS”:返回

】错误:PLS-00103:在预期以下情况之一时遇到符号“AS”:返回【英文标题】:Error:PLS-00103:Encounteredthesymbol"AS"whenexpectingoneofthefollowing:return【发布时间】:2015-11-2313:52:59【问题描述】:我知道这是另一个“遇到符号...”的... 查看详情

Oracle SP:PLS-00103:在预期以下情况之一时遇到符号“`”:

】OracleSP:PLS-00103:在预期以下情况之一时遇到符号“`”:【英文标题】:OracleSP:PLS-00103:Encounteredthesymbol"`"whenexpectingoneofthefollowing:【发布时间】:2020-06-1610:50:29【问题描述】:EXECUTEIMMEDIATE\'UPDATEGDW_ARC_CDM.LND_DIM_GEOSETDESCRIPT... 查看详情

PLS-00103 遇到符号“数字”

】PLS-00103遇到符号“数字”【英文标题】:PLS-00103Encounteredthesymbol"number"【发布时间】:2018-04-1817:29:39【问题描述】:我正在尝试获取贷款余额为负值的例外情况,但出现此错误。PROCEDUREPRC_PAYMENTS的错误:行/列错误8/11PLS-0... 查看详情

“PLS-00103:在预期以下之一时遇到符号“END”::=。(%;符号“;”被替换为“END”以继续。“

】“PLS-00103:在预期以下之一时遇到符号“END”::=。(%;符号“;”被替换为“END”以继续。“【英文标题】:"PLS-00103:Encounteredthesymbol"END"whenexpectingoneofthefollowing::=.(%;Thesymbol";"wassubstitutedfor"END"tocont... 查看详情

错误:PLS-00103:遇到符号“;”当期望以下之一时:* & = - + < / > at in is mod remaining not rem then

】错误:PLS-00103:遇到符号“;”当期望以下之一时:*&=-+</>atinismodremainingnotremthen【英文标题】:ERROR:PLS-00103:Encounteredthesymbol";"whenexpectingoneofthefollowing:*&=-+</>atinismodremaindernotremthen【发布时间】:2020 查看详情