PLS-00103: Encountered the symbol "CREATE"

在执行SQL脚本时遇到了'PLS-00103: Encountered the symbol "CREATE"'的错误。问题出在第一个过程声明末尾缺少'/'。修复此问题后,脚本成功创建了序列和表,但第二个过程PT_DEBUG创建时出现编译错误。

I wrote a SQL script as below, while executing it, encountered 'PLS-00103: Encountered the symbol "CREATE"' error.

logging.sql
----

DROP SEQUENCE pt_debug_sequence;
CREATE SEQUENCE pt_debug_sequence
      START WITH 1
      INCREMENT BY 1
      NOMAXVALUE
      NOCYCLE
      CACHE 10;

DROP TABLE pt_debug_tab;
CREATE TABLE pt_debug_tab (seq INTEGER, text VARCHAR2(300), datetag VARCHAR2(30));

CREATE OR REPLACE
PROCEDURE pt_debug(inStr VARCHAR2) IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
    INSERT INTO pt_debug_tab VALUES(pt_debug_sequence.NEXTVAL, inStr, to_char(sysdate, 'MM/DD/YYYY HH24:MI:SS'));
    COMMIT;
END;
/  -- There should be ended with '/'

CREATE OR REPLACE
PROCEDURE putline IS
  --v_line varchar2(40);
    --intime varchar2(40);
    --outtime varchar2(40);
BEGIN
  --select to_char(sysdate, 'MM/DD/YYYY HH:MI:SS') into intime from dual;
    --dbms_output.put_line('Start Time:'||intime);
    --dbms_output.put_line('Start Time:'||to_char(sysdate, ));
  --v_line := 'hello world';
  --dbms_output.put_line(v_line);
    --dbms_lock.sleep(30);
    --select to_char(sysdate, 'MM/DD/YYYY HH:MI:SS') into outtime from dual;
    pt_debug('dbms_lock.sleep(30)');
    --dbms_output.put_line('End Time:'||outtime);
END;
/

========

SQL> @logging.sql

Sequence dropped.
Sequence created
Table dropped.
Table created.

Warning: Procedure created with compilation errors.

SQL> show errors
Errors for PROCEDURE PT_DEBUG:

LINE/COL ERROR
-------- -----------------------------------------------------------------
9/1      PLS-00103: Encountered the symbol "CREATE"
SQL>

=============

The problem is forgetting to add '/' for the first procedure. When we encounter this kind of issue, usually, we miss adding something or the variable is reserved one etc.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值