• ベストアンサー

PL/SQLのコンパイルエラーについて(ignored)

以下はPL/SQLの一部です。 if (vn_CNT > 0 ) then -- 座席マスタ更新実行 行27 update M_SEAT 行28 set M_SEAT.CD_PC = :new.NK_PC , 行29 M_SEAT.CD_TANTO = :new.CD_TANTO , 行30 where M_SEAT.NO_PORT = :new.NO_PORT ; end if ; 実行すると以下のエラーがでます。。 行番号 = 27 列番号 = 3 エラー・テキスト = PL/SQL: SQL Statement ignored 行番号 = 30 列番号 = 5 エラー・テキスト = PL/SQL: ORA-01747: user.table.column、table.columnまたは列指定が無効です ちなみにOEMコンソールで作成しています。 M_SEATというテーブルは存在します。 権限どうのと言われているのはわかるのですが結局なにが原因なのかわかりません。 どなたか教えてください。

  • Oracle
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • iiikkk
  • ベストアンサー率37% (92/247)
回答No.2

if (vn_CNT > 0 ) then -- 座席マスタ更新実行 行27 update M_SEAT 行28 set M_SEAT.CD_PC = :new.NK_PC , 行29 M_SEAT.CD_TANTO = :new.CD_TANTO 行30 where M_SEAT.NO_PORT = :new.NO_PORT ; end if ; これでどうでしょうか? NK_PCというカラムはありますか?

toshi_200578
質問者

お礼

「,」がついてただけでしたね。 私がバカでした。 ありがとうございました。

その他の回答 (1)

  • j-h-smith
  • ベストアンサー率39% (133/333)
回答No.1

ざっと見ただけですが、列名に誤りは無いのですね? う~ん、UPDATEのSET命令の最終項目の後ろ(whereの前)のカンマは不要な気がしますが、これは抜粋したものでしたっけ?

toshi_200578
質問者

お礼

そのまま抜粋したものです。 おっしゃる通り「,」がついてただけでした。 申し訳ありません。 ありがとうございました。

関連するQ&A

  • PL/SQLのエラーについて

    こんばんは。PL/SQLのエラーについて質問させて頂きます。 現在、Oracle8.1.7のデータベースを使用したオラクルのE-business Suiteという人事系システムで開発をしています。 そこで、SQL*Plusを使用してPL/SQLのパッケージをコンパイルしたところ、パッケージ仕様部も本体部もコンパイルのエラーは出なかったのですが、E-business SuiteにPL/SQLを設定し、動作させようとしたら、下記のようなエラーが発生しました。 -------------------------------------------------------------------- FDPSTP 内のOracleエラー 6550 原因: ORA-06550: 行 1、列 7: PLS-00221: 'ZT_TYOUHYOU_HENSEI_PKG'がプロシージャではないか、または未定義です。 ORA-06550: 行 1、列 7: PL/SQL: Statement ignored が原因で FDPSTP に失敗しました。 --------------------------------------------------------------------- また、作成したPL/SQLパッケージの仕様部は下記のとおりです。 -------------------------------------------------------------------- CREATE OR REPLACE PACKAGE APPS.ZT_TYOUHYOU_HENSEI_PKG AS FUNCTION get_henseihyo_kbn (i_grade IN VARCHAR2,o_hensei_kbn OUT VARCHAR2) RETURN NUMBER; <・・・・・中間部分は省略・・・・・> PROCEDURE main_shori (p_process_date IN VARCHAR2, p_location IN VARCHAR2); END ZT_TYOUHYOU_HENSEI_PKG; -------------------------------------------------------------------- 原因だと思われる心当たりの部分も探してみたのですが、このエラーの意味は何なのか、原因はどこにあるのか分かりません。 どなたかお判りの方、御回答よろしくお願い致します。

  • オラクル(PL/SQL)のエラー

    いつもお世話になります。 オラクル・バージョン8.1.5を使用しています。 PL/SQLを実行すると以下のエラーが発生します。色々調べたのですが、解決しません。 なぜでしょうか?(ロジックがここでは書けないので、エラーのみ記載致します) ORA-06550:行1、列19:*PLS-00103: Encountered the symbol "." when expecting one of the following・・()-+mod この後ろは読めませんでした。 また、PL/SQLを実行したりするには、ただ単にオラクルをインストールしただけでは駄目なのでしょうか? よろしくお願い致します。

  • うまくPL/SQLが書けません。

    PL/SQLを作成しているのですが、うまくいかないので 質問させていただきました。SQL初心者ですがよろしければご教示ください。 テーブル名  カラム名 Bar       number numberには’AB734869 テスト’、‘AB364850 再テスト’ といった具合にまず8桁の番号が入り、その後データによってテキスト項目が続いています。 そしてnumberのデータへ、一律、頭から数えて5バイト目と6バイト目の間に’0000’という文字列を挿入したいと考えています。 例えば’AB734869 テスト’の場合は’AB7300004869 テスト’というようにしたいのですが、良い方法が思いつきません。 STUFF関数は使えませんし。。。UPDATEやINSERTを使ってやろうと思ったのですが、 どうしても出来ません。 皆様の知恵を拝借頂けたらと幸いです。 宜しくお願いいたします。 m(_ _)m

  • PL/SQLでのSQL文法

    こんにちは。教えてください。 PL/SQLを使うのが初めで戸惑っています。 まず、PROCEDUREで =========================== BEGIN SELECT NAME FROM TABLE1 WHERE NAME='tanaka'; END; / =========================== このように書いて実行させようとすると、「コンパイルエラー」 「INTO句はこのSELECT文に入ります」というエラーが出ます。 SQLの文法的には間違ってないと思うのですが、INTO句とはこれいかに?? ネットでPL/SQLで検索かけて調べたのですがあまりにも初歩すぎて わかりませんでした。 PL/SQLやORACLEのメーリングリストでお勧めがありましたら教えてください。 よろしくお願いいたします。

  • PL/SQL PLS-00103エラーについて

    PL/SQL PLS-00103エラーについて 夜分遅くに申し訳ございません。 PL/SQLのコーディングを実施し、コンパイル中にPLS-00103エラーが発生してしまったのですが、 対処方法がわからず困ってしまいました。 ・メッセージ内容:”PLS-00103: 記号"="が見つかりました。” 上記メッセージで指定されていたソース内容(イメージ)↓ -------------------------------------------------------------- ・ ・ BEGIN LV_STEP := '**登録処理開始'  -- 左記の:=の=部分がエラーメッセージで指定されていました。(LV_STEPはログ出力用の変数) CURSOR AAAA IS SELECT GG.EPLY_NO GG_EPLY_NO ,GG.R_CD GG_R_CD ,GG.S_CARD GG_S_CARD ・     ・    ・ FROM GRA_GRA_TR GG ・ ・ ・ ------------------------------------------------------------------ といった感じなのですが、 このPLS-00103エラーの対処方法をどなたかご教示いただけませんでしょうか。 よろしくお願いいたします。

  • PL/SQLでログを確認したい。

    以下のPL/SQLで取ってきた値をログか何かで確認したいのですが、いい方法がありますか? 想像では5行目あたりにログはきだす記述をするのかなと思うのですが、方法がわかりません。 どなたか教えてください。 -------------------------------------------- 1select count(*) into vn_CNT from t_ukerui 2 where no_toi = :new.no_toi 3 and no_uke = :new.no_kyaku 4 and no_gyo = 1; 5 6if ( vn_CNT > 0 ) then 7 --------------------------------------------

  • SQLについて質問します

    VB2010 とSQL Server2008 R2 で開発をしています。 担当者テーブル(table_tanto)と売上明細テーブル(table_uriage_meisai)があります。 各テーブルのカラムは以下です。 table_tanto ・tanto_id ・tanto_name table_uriage_meisai ・meisai_id ・tanto_id ・kingaku ・date ある期間の担当者別の売上実績を一覧で出力したいと考えています。 「table_uriage_meisai」の「date」で範囲指定したいと思います。 結果はこんな形を望んでいます。 担当者ID 担当者名 売上合計 0001   ○○○   ****** 0002   □□□      0 0003   △△△   ****** 0004   ●●●   ****** 2点質問があります。 売上の無かった担当者も含めてすべての担当者の一覧を出したいと考えています。 そのSQlがわからないのと、売上がなかった担当者はその列がNullになってしまうと思うんですが、後の計算で困ります。 Nullのときゼロを返すようにするにはどうしたらよいでしょうか。 以上2点について教えて下さい。 よろしくお願いします。

  • PL/SQLのエラー処理について

    PL/SQLを勉強し始めたのですが、テーブルを作成してから、データを流し込むという処理をしたいのですが、テーブルの作成に失敗しらたら、処理を終了させるという処理はできないのでしょうか? それとも、考え方が違うのでしょうか?アドバイスお願いします。 次のようにPL/SQLを作成しています。 例) declare curHandle1 INTEGER; begin curHandle1 := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(curHandle1, 'create table xxx as select * from xxx where ID=-1', DBMS_SQL.V7); DBMS_SQL.CLOSE_CURSOR(curHandle1); exception when OTHERS then エラーになったら、処理終了したい(次のブロックにいきたくない) end; declare begin      insert into xxx NOLOGGING values (1,'test'); end; よろしくお願いします。

  • PL/SQLでPLS-00201のエラー

    初めて質問させていただきます。 よろしくお願いいたします。 Oracle 9i から 11g へバージョンアップしました。 9iでは動いていたPL/SQLコマンドが11gでは 以下のようなエラーが大量に発生します A_FLG Aシノニム名.列名%type ,      * 行16でエラーが発生しました ORA-00201:行16、列13: PLS-00201:識別子(シノニム名).(列名)を宣言してください。 PROCEDURE D_FLG_UPD ( a in varchar2 ) is type D_TYPE is record ( J シノニム名.列名.列名%type ,    ここでエラー   → A_FLG Aシノニム名.列名%type , B_FLG Bシノニム名.列名%type , C_FLG Cシノニム名.列名%type ); G H; begin これはどういった場合に発生するエラーなのでしょうか? またOracleのバージョンによってPL/SQLのコマンドが動かなくなったりすることは よくあることなのでしょうか? よろしくお願いいたします。

  • SQL文のエラー

    SQL文でエラーが表示されます。どの部分を修正すればいいですか? SQL文が長いので文字列を結合する演算子「.」を使って複数行に分けています。 エラー内容:SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= ? and product_id = product.id' at line 2 //商品番号だけでなく、商品名や価格も表示したいので商品情報を保持するproductテーブルと 結合する。 //全て取得するのでSELECTは* //favoriteテーブルにはcustomer_idとproduct_id //productテーブルにはid, name, price $sql = 'SELECT * FROM favorite, product' . 'WHERE customer_id = ? and product_id = product.id '; // ?に顧客番号を指定する。 // favoriteテーブルの商品番号(product_id列)と、productテーブルの商品番号(id列)が // 一致している行だけが必要なので、WHERE句に条件を追加する。