PLS-00103:遇到符号“CREATE"

2023-09-17数据库问题
2

本文介绍了PLS-00103:遇到符号“CREATE"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

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

创建或替换包 PKG_SHOW_CUST_DETAILS作为PROCEDURE SHOW_CUST_DETAILS(myArg VARCHAR2);结束 PKG_SHOW_CUST_DETAILS;创建或替换包装主体 PKG_SHOW_CUST_DETAILS作为PROCEDURE SHOW_CUST_DETAILS(myArg VARCHAR2)是开始DBMS_OUTPUT.PUT_LINE(myArg);END SHOW_CUST_DETAILS;结束 PKG_SHOW_CUST_DETAILS;/

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

<前>SQL> 显示错误PACKAGE PKG_SHOW_CUST_DETAILS 的错误:行/列错误———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————-----------------------6/1 PLS-00103:遇到符号CREATE"

这个包非常简单,我无法编译它.我搜索了有关此错误消息的早期答案,但没有一个确实解决了我的问题.对于另外 2 个包,我一直收到此错误,无论我做什么,我都被此错误消息所困扰.我什至尝试将所有内容剥离到最低限度,如上所示,但错误消息似乎并没有消失.顺便说一句,我在登录到我的 Oracle 11G 数据库后在命令行 SQL plus 会话上执行此操作.YES- SET SERVEROUTPUT ON -- 已执行,错误信息与此命令无关.

我错过了什么?

解决方案

在第 5 行有一个 / 缺失.

;/ 之间的区别有一个很好的答案 此处.

基本上,当通过脚本运行 CREATE 块时,您需要使用 / 让 SQLPlus 知道块何时结束,因为一个 PL/SQL 块可以包含许多; 的实例.

What is the problem with this package as it is giving an error?

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;
/

On compilation of the above script, I am getting the following errors:

SQL> show errors
Errors for PACKAGE PKG_SHOW_CUST_DETAILS:

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

The package is very simple and I am not able to compile it. I searched earlier answers on this error message and none of them did solve my problem. I am consistently getting this error for 2 more packages and I am stuck on this error message no matter what I do. I even tried to strip everything to the barest minimum as shown above, but the error message does not seem to go away. BTW I am executing this on command line SQL plus session after logging into my Oracle 11G database. YES- SET SERVEROUTPUT ON -- is executed and the error message has nothing to do with this command.

What am I missing?

解决方案

At line 5 there is a / missing.

There is a good answer on the differences between ; and / here.

Basically, when running a CREATE block via script, you need to use / to let SQLPlus know when the block ends, since a PL/SQL block can contain many instances of ;.

这篇关于PLS-00103:遇到符号“CREATE"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

SQL 子句“GROUP BY 1"是什么意思?意思是?
What does SQL clause quot;GROUP BY 1quot; mean?(SQL 子句“GROUP BY 1是什么意思?意思是?)...
2024-04-16 数据库问题
62

为什么 Mysql 的 Group By 和 Oracle 的 Group by 行为不同
Why Mysql#39;s Group By and Oracle#39;s Group by behaviours are different(为什么 Mysql 的 Group By 和 Oracle 的 Group by 行为不同)...
2024-04-16 数据库问题
13

如何在MySQL中为每个组选择第一行?
How to select the first row for each group in MySQL?(如何在MySQL中为每个组选择第一行?)...
2024-04-16 数据库问题
13

MySQL - 获取最低值
MySQL - Fetching lowest value(MySQL - 获取最低值)...
2024-04-16 数据库问题
8

在 cmakelist.txt 中添加和链接 mysql 库
Add and link mysql libraries in a cmakelist.txt(在 cmakelist.txt 中添加和链接 mysql 库)...
2024-04-16 数据库问题
41

考勤数据库的良好数据库设计(架构)是什么?
What is a good database design (schema) for a attendance database?(考勤数据库的良好数据库设计(架构)是什么?)...
2024-04-16 数据库问题
7