编译失败:在预期以下之一时遇到符号“,”::=;非空默认字符
Posted
技术标签:
【中文标题】编译失败:在预期以下之一时遇到符号“,”::=;非空默认字符【英文标题】:Compilation failed: Encountered the symbol "," when expecting one of the following: := ; not null default character 【发布时间】:2016-02-16 01:11:44 【问题描述】:我正面临这个错误:
编译失败,第 3 行 (01:07:19) PLS-00103:在期待其中一个时遇到符号“,” 以下::=;不为空的默认字符
我的程序是:
create or replace procedure testing
as
v_ID NUMBER;v_ASSIGNEE_NAME varchar2(55),v_EMAIL varchar2(55),v_PHONE NUMBER;v_FIELD varchar2(50);
begin
select ID,ASSIGNEE_NAME,EMAIL,PHONE,FIELD into
v_ID NUMBER;v_ASSIGNEE_NAME varchar2(55),v_EMAIL varchar2(55),v_PHONE NUMBER;v_FIELD varchar2(50);
FROM ASSIGNEE;
【问题讨论】:
【参考方案1】:这方面有很多问题,请参阅下面的格式化代码。在你的变量声明中,你用逗号分隔它们,这需要是一个分号。同样在您的 into 子句中,您已经包含了变量类型。您可以做的最好的事情是格式化您的代码,以便更易于阅读和调试。
create or replace procedure testing as
v_ID NUMBER;
v_ASSIGNEE_NAME varchar2(55);
v_EMAIL varchar2(55);
v_PHONE NUMBER;
v_FIELD varchar2(50);
begin
select ID,ASSIGNEE_NAME,EMAIL,PHONE,FIELD
into v_ID NUMBER, v_ASSIGNEE_NAME, v_EMAIL, v_PHONE NUMBER, v_FIELD
FROM ASSIGNEE;
end;
【讨论】:
【参考方案2】:有几个语法错误导致您无法编译代码。下面sn-p会帮到你。
CREATE OR REPLACE PROCEDURE testing
AS
v_ID NUMBER;
v_ASSIGNEE_NAME VARCHAR2(55);
v_EMAIL VARCHAR2(55);
v_PHONE NUMBER;
v_FIELD VARCHAR2(50);
BEGIN
SELECT ID,
ASSIGNEE_NAME,
EMAIL,
PHONE,
FIELD
INTO v_ID,
v_ASSIGNEE_NAME,
v_EMAIL,
v_PHONE,
v_FIELD
FROM ASSIGNEE;
END;
【讨论】:
以上是关于编译失败:在预期以下之一时遇到符号“,”::=;非空默认字符的主要内容,如果未能解决你的问题,请参考以下文章
为啥我会收到此错误? PLS-00103:在预期以下情况之一时遇到符号“CREATE”:
PLS-00103:在预期以下情况之一时遇到符号“TEST_PKG”:;