1

このパッケージ本体をコンパイルしようとしています:

CREATE OR REPLACE PACKAGE BODY package_1 AS
PROCEDURE procedure_1 (P_HOST IN VARCHAR2, P_USER IN VARCHAR2, P_NAME IN VARCHAR2)
IS
BEGIN
SELECT HOSTNAME, USERS, PS_NAME 
INTO P_HOST, P_USER, P_NAME
FROM PS_COLLECT
WHERE NOT EXISTS
( 
    SELECT HOSTNAME, USERS, PS_NAME
    FROM PS_MASTER
    WHERE PS_MASTER.HOSTNAME = PS_COLLECT.HOSTNAME 
    AND PS_MASTER.USERS = PS_COLLECT.USERS 
    AND PS_MASTER.PS_NAME = PS_COLLECT.PS_NAME
 );
END procedure_1;
END package_1;

しかし、私はこのエラーが発生しています

The symbol "(" was substituted for "VARCHAR2" to continue.

私は初心者の int PL/SQL です。助けてください :)

4

1 に答える 1

0

これがあなたが見ている正確なエラーを引き起こすとは思いませんが、コードの明確な問題の1つはIN、パラメーターのモードを指定しているが、プロシージャ内でそれらに値を割り当てようとしていることです。OUT3 つのパラメーターすべて (ヘッダーと本文の両方)のモードを に変更する必要があるようです。

それだけで問題が解決しない場合は、CREATE PACKAGE ステートメントと CREATE PACKAGE BODY ステートメントの両方の変更されたテキストを投稿することをお勧めします。

于 2013-06-03T02:02:43.043 に答える