• 締切済み

Pro*C コンパイルエラー

procコマンドにてコンパイルを行った時に、下記のエラーが出てしまいます。何故でしょうか? 原因の分かる方、誰か教えて下さい。 Pro*C/C++: Release 9.2.0.1.0 - Production on 土 Apr 16 15:19:06 2005 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 行0、列0でエラーが発生しました。ファイルtest001.pc PCC-F-02102, Cプリプロセッサ処理を実行中に致命エラーが発生しました。 行1661、列2でエラーが発生しました。ファイルtest001.pc 1661 } 1661 .1 1661 PCC-S-02014, 記号"<eof>"が見つかりました。 次のうちの1つが入るとき: ; { } , = : ( ) [ ] * ? | & < > + - / % ~ ! . # @ ^ *= /= %= += -= <<= >>= &&= ||= ^= ~= := | & == != <= >= << >> ++ -- -> ... .. <> ** => an identifier, a string, a numeric constant, a sql string, misc. punctuation, newline, define, elif, else, endif, error, if, ifdef, ifndef, include, line, pragma, undef, exec, sql, begin, end, var, type, oracle, an immediate preprocessor command, a C token, exec sql, exec sql include, exec sql var, exec sql begin, exec sql end, end-exec, exec sql type, exec oracle, exec oracle else, exec oracle endif, exec oracle begin, a sql hint, create, function, package, procedure, trigger, or, replace, a C++ token,

noname#10774
noname#10774

みんなの回答

noname#85336
noname#85336
回答No.1

} が足りないのではないでしょうか?

関連するQ&A

  • Pro*Cの構文エラー

    コンパイル時に、下記のエラーが出て困っています。 誰か教えて下さい。 Pro*C/C++: Release 9.2.0.1.0 - Production on 土 Apr 16 15:19:06 2005 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 行0、列0でエラーが発生しました。ファイルtest001.pc PCC-F-02102, Cプリプロセッサ処理を実行中に致命エラーが発生しました。 行1661、列2でエラーが発生しました。ファイルtest001.pc 1661 } 1661 .1 1661 PCC-S-02014, 記号"<eof>"が見つかりました。 次のうちの1つが入るとき: ; { } , = : ( ) [ ] * ? | & < > + - / % ~ ! . # @ ^ *= /= %= += -= <<= >>= &&= ||= ^= ~= := | & == != <= >= << >> ++ -- -> ... .. <> ** => an identifier, a string, a numeric constant, a sql string, misc. punctuation, newline, define, elif, else, endif, error, if, ifdef, ifndef, include, line, pragma, undef, exec, sql, begin, end, var, type, oracle, an immediate preprocessor command, a C token, exec sql, exec sql include, exec sql var, exec sql begin, exec sql end, end-exec, exec sql type, exec oracle, exec oracle else, exec oracle endif, exec oracle begin, a sql hint, create, function, package, procedure, trigger, or, replace, a C++ token,

  • ROWID型の宣言について(Pro*C)

    (Oracle9i) Pro*Cにて、ROWIDを使用したSELECT&INSERTをしたいのですが、 ホスト変数をROWID型で宣言しようとするとエラーになります。 [PCC-S-02201, 記号"rowid"が見つかりました。 次のうちの1つが入るとき~] 宣言の仕方は以下の通りです。  EXEC SQL BEGIN DECLARE SECTION;   rowid fetch_ROWID;   short fetch_ROWID_ind;  EXEC SQL END DECLARE SECTION; ROWIDという型はORACLEにあるので、なぜプリコンパイルが通らないのか 分かりません。 どなたかお分かりになる方がいらっしゃいましたらよろしくお願いいします。 ちなみに以下のような使い方をしようとしていますので、参考までに 載せておきます。  EXEC SQL DECLARE C_XXX CURSOR FOR   SELECT ・・・,ROWID FROM XXX FOR UPDATE ・・・  EXEC SQL OPEN C_XXX;  EXEC SQL WHENEVER NOT FOUND DO break;  while(1){   EXEC SQL FETCH C_XXX INTO    ・・・,    :fetch_ROWID:fetch_ROWID_ind;   EXEC SQL    UPDATE XXX    SET ・・・    WHERE ROWID=:fetch_ROWID:fetch_ROWID_ind;  }

  • Cソースにホスト変数を宣言したヘッダをインクルード方法

    C言語ソースにホスト変数を宣言したヘッダをインクルードする記述を教えてください。下記の記述をしたのですが、エラーになります。 EXEC SQL INCLUDE SQLCA; EXEC SQL BEGIN DECLARE SECTION; #include "../host_header.h" EXEC SQL END DECLARE SECTION;

  • pro*c で pl/sql に変数を渡すとora-01458発生

    oracle初心者です。よろしくお願いします。 oracleのバージョンは 10.1.0.2.0 開発言語はpro*c pl/sql です。 テキストファイルを処理するAPを作成しています。 ディレクトリオブジェクト名を、pro*cからpl/sqlを呼び出す際に変数として渡していますが、実行するとora-01458エラーが発生してしまいます。 pro*cのコーディングは以下の通りです。 EXEC SQL BEGIN DECLARE SECTION; char Pass[50+1]; char Txtnm[20+1]; int nStatus; VARCHAR vErrMsg[100+1]; VARCHAR vErrCode[10+1]; EXEC SQL END DECLARE SECTION; ZeroMemory( Pass, sizeof( Pass ) ); strcpy( Pass, "DIR_A" ); ZeroMemory( Txtnm, sizeof( Txtnm) ); strcpy( Txtnm, "TEST.txt" ); EXEC SQL EXECUTE BEGIN  proc9999( :Pass, :Txtnm, :nStatus, :vErrMsg, :vErrCode ); END; END-EXEC; しかし、このpl/sqlをsqlplusから下記の内容で実行すると正常に動作します。 DECLARE in_file_dir VARCHAR2(255) :='DIR_A'; in_file_name VARCHAR2(255) :='TEST.txt'; io_sts number; io_msg VARCHAR2(255); io_msgcd VARCHAR2(10); BEGIN PROC9999( in_file_dir, in_file_name, io_sts, io_msg, io_msgcd ); END; 同じことをしていると思うのですが何故pro*cではエラーになるのでしょうか?

  • PRO*C コンパイルエラー

    現在PRO*CとORACLEを学んでいる初心者です。 PRO*Cを使用したCプログラムを作成し、gccコマンドで プログラムをコンパイルしたんですが、以下のようなコンパイルエラーがでまして、どうしたらいいのかわからず、先に進めない状態です。 # gcc -o viewaddr viewaddr.c -m64 -L$ORACLE_HOME -lclntsh viewaddr.c:139:20: sqlcpr.h: No such file or directory 確かにプログラム上でsqlcpr.hをインクルードしています。 sqlcpr.hを使用したいのですが、認識させるにはどうしたらいいのか教えていただけないでしょうか? 環境はUNIX(SUN)、ORACLE9iを使用しています。 どうかよろしくお願いいたします。

  • PCC-S-02201エラー

    こんにちは。 現在Oracle9 Pro*Cで開発をしているのですが、下記のSQLでコンパイルエラーが出てしまいます。エラー内容は 「PCC-S-02201, 記号"+"が見つかりました。」 SQLPlus上では問題なく検索されるのですが、うまくいきません。 何が問題なのでしょうか? EXEC SQL SELECT A_DAY FROM DB1 WHERE B_NUM = ((SELECT B_NUM FROM DB1 WHERE A_DAY = '20040722') + 1); B_NUMはNUMBER型です。

  • Pro c/c++ でホスト変数の後に.lenとか.arrの意味は?

    お世話になっています。 早速ですが ----------------略--------------- EXEC SQL BEGIN DECLAR SECTION VARCHAR A[2]; EXEC SQL END DECLAR SECTION A.len = sprintf( (char*)A.arr, "%s", B ) ---------------------------------------- 上記のようなソースがあったとき.lenと.arrは何の役割を果たしている のでしょうか?よくわからくて困っています。 わかる方がいらしたら、どうかご教授ください。

  • DB2付きのC言語がコンパイルできません。

    CはMicrosoftVisualStudio2012 DBはIBM DB2 です。 同じ環境でコンパイル実行できていたのに、 PCがおかしくなったのでフォーマットして入れなおしたらコンパイルができなくなりました。 よろしくおねがいします。 ソースはこちらです。 #include <stdio.h> exec sql include sqlca; void main() { exec sql connect to sample; if(SQLCODE!=0) { printf("SQL CONNECT %d", SQLCODE); } else { exec sql update Test1 set col2 = 'bababa'; if(SQLCODE!=0) printf("SQL UPDATE %d", SQLCODE); } exec sql connect reset; } コンパイルコマンドです db2 connect to sample db2 prep Test11.sqc bindfile db2 bind Test11.bnd cl -Z7 -c -W2 -D_X86_=1 -DWIN32 -I"c:\Program Files\IBM\SQLLIB\include" Test11.c link -debugtype:cv -outTest11.exe %1.obj "c:\Program Files\IBM\SQLLIB\lib\db2api.lib" エラーメッセージです Test11.obj : error LNK2019: 未解決の外部シンボル _sqlaaloc@16 が関数 _main で参照されました。 Test11.obj : error LNK2019: 未解決の外部シンボル _sqlacall@20 が関数 _main で参照されました。 Test11.obj : error LNK2019: 未解決の外部シンボル _sqlasetdata@24 が関数 _main で参照されました。 Test11.obj : error LNK2019: 未解決の外部シンボル _sqlastop@4 が関数 _main で参照されました。 Test11.obj : error LNK2019: 未解決の外部シンボル _sqlastrt@12 が関数 _main で参照されました。 Test11.exe : fatal error LNK1120: 5 件の未解決の外部参照

  • C言語 埋め込みSQL ecpg

    C言語の埋め込みSQLで質問です。 ご教示ください。初心者です。 【環境】 Windows7 64bit gcc:5.3.0 PostgreSQL:9.6.1 【pgcファイル】 #include <stdio.h> exec sql include sqlca; int main(char* argx[], char* argv[]){ exec sql begin declare section; char NAME[256]; char MAIL[256]; exec sql end declare section; exec sql connect to bookmark user dbuser; strcpy(NAME,argv[1]); strcpy(MAIL,argv[2]); exec sql insert into Name_list (name, mail) values (:NAME, :MAIL); exec sql commit; exec sql disconnect; return 0; } 【症状】 以下のコマンドを実行するとエラーが出ます。 -Iでインクルードしようとしています。 C:\cTest\c>ecpg name_list_db.pgc -I C:\postgresql\include ecpg: ファイル"-I"をオープンできませんでした: No such file or directory ecpg: ファイル"C:\postgresql\include"をオープンできませんでした: No such file or directory 一応Cファイルは生成されます。 強引にgccすると下記のエラーが出ます C:\cTest\c>gcc -o name_list_db name_list_db.c -I C:\postgresql\include -lecpg c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32/bin/ld.exe: cannot find -lecpg collect2.exe: error: ld returned 1 exit status どうすれば良いかご教示ください。 この辺のWebサイトを参考にしました。 http://se.cite.ehime-u.ac.jp/~aman/memo/SQL/ecpg.html 以上よろしくお願いいたします。

  • C++.NETでのOracle埋め込み

    C++ 6.0ではOracle埋め込みはEXEC SQL BEGIN DECLARE SECTION;と 定義していたのですがC++.NETでは ORA_SUB.cpp(15) : error C2146: 構文エラー : ';' が、識別子 'SQL' の前に必要です。 ORA_SUB.cpp(15) : error C2501: 'EXEC' : 識別名を宣言するのに、型が指定されていません。 ORA_SUB.cpp(15) : error C2146: 構文エラー : ';' が、識別子 'BEGIN' の前に必要です。 ORA_SUB.cpp(15) : error C2501: 'SQL' : 識別名を宣言するのに、型が指定されていません。 ORA_SUB.cpp(15) : error C2146: 構文エラー : ';' が、識別子 'DECLARE' の前に必要です。 ORA_SUB.cpp(15) : error C2501: 'BEGIN' : 識別名を宣言するのに、型が指定されていません。 ORA_SUB.cpp(15) : error C2146: 構文エラー : ';' が、識別子 'SECTION' の前に必要です。 とエラーになります。 C++.NETでは使い方が違っているのでしょうか? よろしくお願い致します。