DOBON.NETプログラミング掲示板過去ログ
VB.NetでパッケージのCreate文を発行するとエラー
題名: VB.NetでパッケージのCreate文を発行するとエラー
著者: hiro
日時: 2011/03/15 17:42:23
ID: 28318
この記事の返信元:
(なし)
この記事への返信:
[28330]
Re[1]: VB.NetでパッケージのCreate文を発行するとエラー
hiro
2011/03/18 9:15:36
[解決]
ツリーを表示
環境/言語:[VB.NET]
分類:[.NET]
hiroと申します。
よろしくお願いします。
開発環境は VisualStudio2005とOracle9iです。
この質問はマルチポストです。
下記アドレスにて質問したのですが、回答がつかないまま過去ログへ移行してしまったため、条件付きでマルチポストを許可するこちらの掲示板を利用させて頂きました。
どうかよろしくお願いします。
※ http://bbs.wankuma.com/
現在パッケージのCreate文をVB.Netを介して発行するプログラムを作っているのですが、いざ行ってみるとエラーが発生してしまいます。
====================================================
VBソース
conn = New OracleConnection
conn.ConnectionString = "USER ID=" + sUser + ";PASSWORD=" + sPass + ";DATA SOURCE=" + sDB
conn.Open()
tran = conn.BeginTransaction
cmd = conn.CreateCommand
cmd.Transaction = tran
cmd.CommandText = sSQL
cmd.ExecuteNonQuery()
tran.Commit()
====================================================
発行したSQL
CREATE OR REPLACE PACKAGE PACK_TEST IS
--* 作成日 :2099/09/09
--* 機能 :メイン
PROCEDURE PROC_MAIN(
PO_RESULT OUT NUMBER,
PO_MSG OUT VARCHAR2
);
--* 作成日 :2099/09/09
--* 機能 :数値判定
FUNCTION FC_IS_NUMBER(PI_STR IN VARCHAR
) RETURN BOOLEAN;
END PACK_TEST;
/
====================================================
オブジェクトブラウザに登録されたソース
CREATE OR REPLACE PACKAGE PACK_TEST IS
--* 作成日 :2099/09/09
--* 機能 :メイン
PROCEDURE PROC_MAIN(
PO_RESULT OUT NUMBER,
PO_MSG OUT VARCHAR2
);
--* 作成日 :2099/09/09
--* 機能 :数値判定
FUNCTION FC_IS_NUMBER(PI_STR IN VARCHAR
) RETURN BOOLEAN;
END PACK_TEST;
/
====================================================
上記SQLをプログラムで発行し、オブジェクトブラウザで見てみると、
【PLS-00103:記号""が見つかりました。】というコンパイルエラーになってしまいます。
ソースに問題がないのは確認済みで、再コンパイルを手動で行うと上記のエラーは発生せず、コンパイルに成功します。
最初からコンパイルが成功した状態にするには、どのようにすれば良いのでしょうか。
また、何故登録後のソースは1行おきに改行されてしまっているのでしょうか。
Create分発行後に再コンパイルというのも考えたのですが、
やはりソースが見辛くなってしまうので、「1行おきの改行」そのものを
解決したいと思っています。
ご解答、よろしくお願いします。
題名: Re[1]: VB.NetでパッケージのCreate文を発行するとエラー
著者: hiro
日時: 2011/03/18 9:15:36
ID: 28330
この記事の返信元:
[28318]
VB.NetでパッケージのCreate文を発行するとエラー
hiro
2011/03/15 17:42:23
この記事への返信:
(なし)
ツリーを表示
2011/03/18(Fri) 09:16:26 編集(投稿者)
2011/03/18(Fri) 09:16:21 編集(投稿者)
hiroです。
SqlPlusからCreate文のスプリクトを実行すれば
下記の問題を回避出来るようだったので、
一度SQLをバッチファイル化し、
VB側からSqlPlusを起動して対応することが出来ました。
自己解決ということで、終了いたします。
解決済み!
DOBON.NET
|
プログラミング道
|
プログラミング掲示板
分類:[.NET]
hiroと申します。
よろしくお願いします。
開発環境は VisualStudio2005とOracle9iです。
この質問はマルチポストです。
下記アドレスにて質問したのですが、回答がつかないまま過去ログへ移行してしまったため、条件付きでマルチポストを許可するこちらの掲示板を利用させて頂きました。
どうかよろしくお願いします。
※ http://bbs.wankuma.com/
現在パッケージのCreate文をVB.Netを介して発行するプログラムを作っているのですが、いざ行ってみるとエラーが発生してしまいます。
====================================================
VBソース
conn = New OracleConnection
conn.ConnectionString = "USER ID=" + sUser + ";PASSWORD=" + sPass + ";DATA SOURCE=" + sDB
conn.Open()
tran = conn.BeginTransaction
cmd = conn.CreateCommand
cmd.Transaction = tran
cmd.CommandText = sSQL
cmd.ExecuteNonQuery()
tran.Commit()
====================================================
発行したSQL
CREATE OR REPLACE PACKAGE PACK_TEST IS
--* 作成日 :2099/09/09
--* 機能 :メイン
PROCEDURE PROC_MAIN(
PO_RESULT OUT NUMBER,
PO_MSG OUT VARCHAR2
);
--* 作成日 :2099/09/09
--* 機能 :数値判定
FUNCTION FC_IS_NUMBER(PI_STR IN VARCHAR
) RETURN BOOLEAN;
END PACK_TEST;
/
====================================================
オブジェクトブラウザに登録されたソース
CREATE OR REPLACE PACKAGE PACK_TEST IS
--* 作成日 :2099/09/09
--* 機能 :メイン
PROCEDURE PROC_MAIN(
PO_RESULT OUT NUMBER,
PO_MSG OUT VARCHAR2
);
--* 作成日 :2099/09/09
--* 機能 :数値判定
FUNCTION FC_IS_NUMBER(PI_STR IN VARCHAR
) RETURN BOOLEAN;
END PACK_TEST;
/
====================================================
上記SQLをプログラムで発行し、オブジェクトブラウザで見てみると、
【PLS-00103:記号""が見つかりました。】というコンパイルエラーになってしまいます。
ソースに問題がないのは確認済みで、再コンパイルを手動で行うと上記のエラーは発生せず、コンパイルに成功します。
最初からコンパイルが成功した状態にするには、どのようにすれば良いのでしょうか。
また、何故登録後のソースは1行おきに改行されてしまっているのでしょうか。
Create分発行後に再コンパイルというのも考えたのですが、
やはりソースが見辛くなってしまうので、「1行おきの改行」そのものを
解決したいと思っています。
ご解答、よろしくお願いします。