2016-07-03 16 views
0

私が受け取るエラーは、「/」を削除するかどうかによって異なります。PLS-00103:シンボル「/」が発生しました

PLS-00103:/なしシンボル/

が発生しました:

PLS-00103:/

シンボルCREATE

0が発生しました

私は間違って何をしていますか?パッケージ仕様で

CREATE OR REPLACE PACKAGE EMP_PACKAGE AS 
    TYPE EMP_TYPE IS RECORD 
    (/* Employee Type */ 
     employee_id  NUMBER(6,0), 
     first_name  VARCHAR2(20), 
     last_name   VARCHAR2(25), 
     email    VARCHAR2(25), 
     phone_number  VARCHAR2(20), 
     hire_date   DATE, 
     job_id   VARCHAR2(10), 
     salary   NUMBER(6,2), 
     commission_pct NUMBER(2,2), 
     manager_id  NUMBER(6,0), 
     department_id  NUMBER(4,0) 
); 

    PROCEDURE add_emp(employee_id NUMBER); 
    PROCEDURE edit_first_name(employee_id NUMBER, first_name employees.first_name%TYPE); 
    FUNCTION get_emp(employee_id NUMBER) RETURN employee_id; 
END;  
/
CREATE OR REPLACE PACKAGE BODY EMP_PACKAGE AS 
-- procedure will edit an employee's first name 
    PROCEDURE edit_first_name(employee_id NUMBER) IS 
    BEGIN 
    INSERT INTO employees (employees.first_name) 
    VALUES (first_name); 
    END edit_first_name; 
END; 
/
+0

このスクリプトを実行するために使用するツールはどれですか? –

+0

可能な複製https://stackoverflow.com/questions/20334067/pls-00103-encountered-the-symbol-create –

+0

私はsqldeveloperを使用しています。申し訳ありませんが、私はそれにタグを使用しようとしましたが、それは投稿にそれを追加するために私の心を完全にスキップしたので、1500ポイントが必要でした。 –

答えて

2

次の行を持っている:

FUNCTION get_emp(employee_id NUMBER) RETURN employee_id; 

employee_idは、有効なデータ・タイプではありません。

あなたは有効なタイプに、あなたは、パッケージ本体のエラーを取得することを変更すると:あなたはADD_EMP手順とGET_EMP機能が欠落している

  • PROCEDURE edit_first_name(employee_id NUMBER)は、first_name employees.first_name%TYPE引数がないため、パッケージ仕様の宣言と一致しません。
  • INSERT INTO employees (employees.first_name) VALUES (first_name);には、first_nameではなく、employees.first_nameである。
+0

@MTOあなたが言及したすべてのものを変更しましたが、以前と同じエラーが発生しています。コメントの文字数制限のために私が行った変更を表示する方法は100%ではありません。私はあなたがしたすべての提案を理解しています。 –

0

コードにエラーがあります。 多分あなたは何かこれを必要としますか? これをSQL Developerでエラーなしでコンパイルします。

create or replace PACKAGE EMP_PACKAGE AS 
    TYPE EMP_TYPE IS RECORD 
    (/* Employee Type */ 
     employee_id  NUMBER(6,0), 
     first_name  VARCHAR2(20), 
     last_name   VARCHAR2(25), 
     email    VARCHAR2(25), 
     phone_number  VARCHAR2(20), 
     hire_date   DATE, 
     job_id   VARCHAR2(10), 
     salary   NUMBER(6,2), 
     commission_pct NUMBER(2,2), 
     manager_id  NUMBER(6,0), 
     department_id  NUMBER(4,0) 
); 

    PROCEDURE add_emp(p_employee_id NUMBER); 
    PROCEDURE edit_first_name(p_employee_id NUMBER, p_first_name employees.first_name%TYPE); 
    FUNCTION get_emp(p_employee_id NUMBER) RETURN EMP_TYPE; 
END;  

/

create or replace PACKAGE BODY EMP_PACKAGE AS 

-- procedure will edit an employee's first name 
    PROCEDURE edit_first_name(p_employee_id NUMBER, p_first_name employees.first_name%TYPE) IS 
    BEGIN 
    update employees emp 
     set emp.first_name = p_first_name 
    where emp.employee_id = p_employee_id; 

    END edit_first_name; 

    PROCEDURE add_emp(p_employee_id NUMBER) IS BEGIN 
    null; 
    END; 

    FUNCTION get_emp(p_employee_id NUMBER) RETURN EMP_TYPE IS 
    BEGIN 
    return null; 
    END; 

END; 
+0

私はあなたのコードをコピーしてテストしているのとまったく同じで、同じエラーが発生しているので、接続に基づいているデータベースに問題があると思います。ここに私に表示されたもののスクリーングラブがあります。 http://imgur.com/pLTQyZ3 –

+0

コピーしないでください。新しい "SQLファイル"ファイル - >新規 - >すべてのアイテム - > SQLファイルを作成してそこにコピーします。実行後 –

関連する問題