标签: pls-00103

PLS-00103:遇到符号"CREATE"

这个包有什么问题,因为它出错了?

CREATE OR REPLACE PACKAGE PKG_SHOW_CUST_DETAILS 
AS
    PROCEDURE SHOW_CUST_DETAILS( myArg VARCHAR2);
END PKG_SHOW_CUST_DETAILS;

CREATE OR REPLACE PACKAGE BODY PKG_SHOW_CUST_DETAILS 
AS
    PROCEDURE SHOW_CUST_DETAILS(myArg VARCHAR2)
    IS
    BEGIN
        DBMS_OUTPUT.PUT_LINE(myArg);        
    END SHOW_CUST_DETAILS;

END PKG_SHOW_CUST_DETAILS;
/
Run Code Online (Sandbox Code Playgroud)

在编译上面的脚本时,我收到以下错误:

SQL> show errors
Errors for PACKAGE PKG_SHOW_CUST_DETAILS:

LINE/COL ERROR
-------- -----------------------------------------------------------------
6/1      PLS-00103: Encountered the symbol "CREATE"

包很简单,我无法编译它.我在这个错误消息上搜索了早期的答案,但没有一个能解决我的问题.我一直在为另外2个包收到此错误,无论我做什么,我都会遇到此错误消息.我甚至尝试将所有内容剥离到最小的最小值,如上所示,但错误消息似乎没有消失.BTW我在登录Oracle 11G数据库后在命令行SQL plus会话上执行此操作.是 - SET SERVEROUTPUT ON - 已执行,错误消息与此命令无关.

我错过了什么?

oracle pls-00103

31
推荐指数
1
解决办法
12万
查看次数

创建oracle包遇到PLS-00103:遇到符号"CREATE"

我正在使用Oracle sql开发人员编写一个oracle包,我得到了这个编译错误:

错误(7,1):PLS-00103:遇到符号"CREATE".

create or replace
PACKAGE TestPackage AS 
 FUNCTION beforePopulate RETURN BOOLEAN;
 FUNCTION afterPopulate RETURN BOOLEAN;
END TestPackage;

CREATE OR REPLACE PACKAGE BODY TestPackage AS
   FUNCTION beforePopulate RETURN BOOLEAN AS
   BEGIN
      DELETE FROM TEST_1;
      INSERT INTO TEST_1
      SELECT * FROM TEST WHERE VALUE=300;
      COMMIT;
      RETURN TRUE;
     EXCEPTION
       WHEN OTHERS THEN
        RETURN FALSE;
   END;
   FUNCTION afterPopulate RETURN BOOLEAN AS
     BEGIN
         UPDATE TEST SET RESULT="completed" WHERE VALUE=300;
            COMMIT;
         RETURN TRUE;
         EXCEPTION
           WHEN OTHERS RETURN FALSE;
        END;
  END;
END TestPackage;
Run Code Online (Sandbox Code Playgroud)

如果我/ …

oracle plsql pls-00103

22
推荐指数
3
解决办法
6万
查看次数

PL/SQL:创建序列时出错

我是新的PL/SQL,并且正在使用的Oracle SQL Developer写它使用序列来生成对已有数据的主键的过程中,写入到另一个数据库.

有问题的代码是在NDA下.基本上我有以下内容:

create or replace
PROCEDURE Generate_Data
(
   output IN VARCHAR2
) 
AS

-- Variables here --

CURSOR myCursor IS
SELECT data1, data2 
FROM table;

CREATE SEQUENCE mySequence      <-- error on this line
START WITH 0
INCREMENT BY 1;

BEGIN
LOOP
    -- snip --
Run Code Online (Sandbox Code Playgroud)

它引发错误PLS-00103,说它遇到以下时遇到符号CREATE:begin,function,package,pragma,procedure,...

我一直在关注这个例子:http: //www.techonthenet.com/oracle/sequences.php

oracle plsql pls-00103

5
推荐指数
1
解决办法
8110
查看次数

错误PLS-00103在Oracle中编译用户定义的函数

我正在尝试在Oracle中创建一个用户定义的函数,当给定包含日期子字符串的文本参数时,它将返回DATE.我已经尝试了几种写这个方法,似乎都抛出了同样的错误:

CREATE OR REPLACE FUNCTION lm_date_convert (lm_date_in IN VARCHAR2(50))
  RETURN DATE DETERMINISTIC IS
BEGIN
  RETURN(TO_DATE(REGEXP_REPLACE(lm_date_in, '([[:digit:]]{2})[-/.]*([[:digit:]]{2})[-/.]*([[:digit:]]{4})','\3-\1-\2'), 'YYYY-MM-DD'));
END;
Run Code Online (Sandbox Code Playgroud)

错误:

功能lm_date_convert已编译.1/46
PLS-00103:遇到以下其中一项时遇到符号"("):

:=.),@%default character符号":="代替"("继续.

欢迎任何关于此的想法,以及一般的UDF写作技巧(以及好的参考资料)!谢谢.

oracle plsql function user-defined-functions pls-00103

5
推荐指数
1
解决办法
2万
查看次数

尝试调用程序时PLS-00103

尝试编译时,我收到以下错误

错误(16,8):PLS-00103:遇到以下其中一项时遇到符号"SPROLLUPEXPENSEITEM":: =.(@%;符号":="代替"SPROLLUPEXPENSEITEM"继续.

错误(17,15):PLS-00103:当遇到以下情况之一时遇到符号"=":. (*@%= - + </>在是模余数不那么REM <>或=或〜=> = <= <>和或类似的多集||构件SUBMULTISET之间LIKE2样4 likec!

create or replace
TRIGGER tr_ExpenseItem_Rollup
AFTER DELETE OR UPDATE of ExpApprAmt
ON ExpenseItem
FOR EACH ROW
DECLARE
    RollupAmt   Number;
    BlnResult   Boolean;
BEGIN
    IF DELETING THEN
        RollupAmt := -1 * :Old.ExpApprAmt;
    End If;
    IF UPDATING Then
        RollupAmt := :New.ExpApprAmt - :Old.ExpApprAmt;
    End IF;
  Call spRollUpExpenseItem(:New.ERNo,:New.ECNo,RollupAmt,BlnResult);
    If BlnResult := TRUE
        --Additional Logic Here 
    End IF;
END;
Run Code Online (Sandbox Code Playgroud)

我是一名学生而且新,所以任何帮助都会受到赞赏.

oracle triggers plsql pls-00103

2
推荐指数
1
解决办法
4182
查看次数

PLS-00103功能结束时出错

收到与功能相关的以下错误:

'第20行的错误:PLS-00103:遇到以下其中一项时遇到符号"文件结束":end not pragma final instantiable order overriding static member constructor map 0.01秒

CREATE OR REPLACE FUNCTION Function1
RETURN FLOAT
IS 
    PricePerBug FLOAT,
    NumberOfBugs NUMBER,
    TotalIncome FLOAT;
BEGIN
    SELECT SUM(ProjectValue) INTO TotalIncome FROM tblProject;
    SELECT COUNT(idBug) INTO NumberOfBugs FROM tblBug;
    PricePerBug := (NumberOfBugs)/(TotalIncome);
    RETURN PricePerBug;
EXCEPTION
    WHEN NO_DATA_FOUND THEN
    DBMS_OUTPUT.PUT_LINE('No data found, no result to display; exception handled...');
    WHEN TOO_MANY_ROWS THEN
    RETURN 'Too many rows returned...';
    WHEN OTHERS THEN
    RAISE_APPLICATION_ERROR(-20015, 'Unknown exception in function Function1.');
END Function1;
/
Run Code Online (Sandbox Code Playgroud)

任何建议赞赏......

plsql oracle-xe oracle10g pls-00103

2
推荐指数
1
解决办法
9724
查看次数

PLSQL遇到了符号"end-offile"...... PLS-00103

我在PL SQL上很新,当我尝试写下面的代码时:

BEGIN FOR foo IN (SELECT A, B, C FROM foo_table WHERE some_conditions) LOOP
DBMS_OUTPUT.PUT_LINE('sth here')
END LOOP;
Run Code Online (Sandbox Code Playgroud)

在SQL Developer中执行statment时出现以下错误

当期望是以下一个时遇到符号"文件结束":开始案例声明结束例外以及更多...

我的陈述有什么问题?任何人都可以给我一个提示如何解决这个问题?所有提示我都会很高兴.

sql oracle plsql plsqldeveloper pls-00103

0
推荐指数
1
解决办法
1636
查看次数

Oracle:异常和错误

我已经在SQL中编写了这个函数,我无法弄清楚为什么,但它继续在异常部分返回错误.我检查了语法,记录了但我没有运气,有人请帮忙吗?


错误返回:

Error on line 83: PLS-00103: Found symbol "EXCEPTION" instead one of the following:
    begin case declare end exit for goto if loop mod null pragma raise return select update while with
    <<
    close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe
Run Code Online (Sandbox Code Playgroud)
create or replace function InsertPeriodoEvento
    (NomePeriodo in varchar,
    aInizio in integer,
    aFine in integer,
    NomeEvento1 in varchar,
    g1 in integer,
    m1 in integer,
    a1 in integer,
    NomeEvento2 in varchar,
    g2 …
Run Code Online (Sandbox Code Playgroud)

oracle plsql exception-handling pls-00103

0
推荐指数
2
解决办法
340
查看次数