pl sql错误PLS-00103

时间:2014-02-28 14:01:10

标签: plsql sqlplus

我有一个表(客户),并且具有c_Id,fname,lname,age

的属性

该表填充了以下值

 1|Ann|Smiths|23
 2|Chris|Gates|21
 3|Janes|Jobs|24

我是pl / sql的新手,我写了一个简单的select语句

DECLEAR
     name varchar2(50);
BEGIN
     SELECT fname into name
     FROM customer
     WHERE fname= 'Ann';
END;

当我使用以下命令

从sqlplus上的文本文件(doselect)执行脚本时
 EXECUTE doselect

然而它给了我以下错误

ERROR at line 1:
ORA-06550: line 1, column 8:  
PLS-00103: Encountered the symbol ":" when expecting one of the following: 
:= . ( @ % ; 

请帮忙。

3 个答案:

答案 0 :(得分:1)

除了错字(DECLEAR而不是DECLARE),你的脚本看起来很好。要从SQL / Plus获取输出,我还要添加DBMS_OUTPUT语句:

DECLARE
     name varchar2(50);
BEGIN
     SELECT fname into name
     FROM customer
     WHERE fname= 'Ann';
     -- print it
     dbms_output.put_line(name);
END;

但是,要从SQL / Plus执行文件,请不要使用EXECUTE命令 - 而是使用@

SQL> set serveroutput on
SQL> @doselect
 10  /
 Ann

SQL / Plus对新用户不是很友好 - 你可能想要使用另一个客户端来开始(例如Oracle SQL/Developer - 它是免费的,并带有一个漂亮的GUI)。

答案 1 :(得分:0)

DECLARE
   name   VARCHAR2 (50);
BEGIN
   SELECT   FNAME
     INTO   name
     FROM   customer
    WHERE   FNAME = 'Ann';
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line ('ERROR ' || SQLERRM);
END;
/

您的错误是在DECLEAR中 - > DECLARE,您必须使用/.

关闭脚本

您应该始终插入一个用于异常处理的块。

答案 2 :(得分:0)

创建类型holding_TY作为对象

(
    d_id int not null,
    foreign key(d_id)references device(d_id),
    d_number number
)

创建类型holding_nt作为holding_TY的表

CREATE TABLE bill (
    bi_id int primary key,
    c_id number not null,
    foreign key(c_id) references customer(c_id),
    bi_date date_TY,
    holding holding_nt,
    total_pri float
)

嵌套表存储为holding_nt_table