2017-01-12 3 views
0
create or replace 
PROCEDURE   PR_CHECKBARCODEFORMAT 
(
    SUBJECT_ID IN VARCHAR2 
) 
IS 
BadBarcodeFormat NUMBER(6); 
PassOrFail VARCHAR2(50); 
BEGIN 
SELECT COUNT(*) 
    INTO BadBarcodeFormat 
    FROM RWILSON.TableA a 
    JOIN RWILSON.TableB s 
     ON a.SAMPLE_ID = s.SAMPLE_ID 
WHERE s.SUBJECT_ID = Subject_ID 
    AND NOT REGEXP_LIKE(Barcode, '[0-9][A-Z][0-9][0-9][0-9][0-9][0-9][0-9]'); 

IF BadBarcodeFormat = 0 THEN PassOrFail := 'ALL PASS'; 
ELSE PassOrFail := 'ALL FAIL'; 
END IF; 

DBMS_OUTPUT.put_line(PassOrFail); 

END PR_CHECKBARCODEFORMAT; 

sys.TableAとsys.TableBを使用するとコードが正常に動作していました。私はそれらがRwilsonのために存在することを確認しました...だから私は問題が何であるか分かりません...どんな考えですか?Oracle 11gのエラー:エラー(24,12):PLS-00103:シンボル "。"が検出されました。次のいずれかを予期しているとき。

そして私はsysに戻してみました。私は今、sysに何も作成してはならないことを認識しています。私が最初に表と手順を作成したのはわかりませんでした。彼らはその後交換されましたが、私はまだ問題を抱えています...

助けてください。

+0

質問に使用しているカラム名と同じ名前でプロシージャのパラメータを呼び出す必要がある場合は、makeプロシージャー名でパラメーターを別名にしてください。例えば。 'WHERE s.SUBJECT_ID = PR_CHECKBARCODEFORMAT.Subject_ID'でなければ、Oracleを混乱させるでしょうし、自分自身と比較していると仮定します(これは、カラムがnullの場合を除いて' 1 = 1'と同様です)。または、パラメータの列名が異なることを確認して、最初に問題を回避することができます – Boneist

+0

Thanks for the Aside。私はそれを修正しました。しかし、なぜ私はそのエラーを取得しているの任意の提案がありますか? – MacWilson08

+0

申し訳ありませんが、私はしません。あなたはそれが通常のフルストップ(別名期間)で、他のファンキーなキャラクターではないと確信していますか?また、スキーマ「RWILSON」も存在しますか? – Boneist

答えて

0

TL; DRのコメントの投稿

期間がありましたが、コードを編集して取り出そうとしていました。しかし何らかの理由で、SQL Developerはコードを更新しませんでした。そこでコードをSQL * Plusに入れて、最後に/を追加する必要がありました。上に投稿したものとDeveloperのすべてのものを今すぐ再作成しました...

関連する問題