※ ChatGPTを利用し、要約された質問です(原文:プロシージャの引数について)
プロシージャの引数について
このQ&Aのポイント
SQL Server 2005におけるプロシージャの引数にCSVファイルのフルパスを入れる方法について困っています。
プロシージャの作成時にエラーメッセージが出てしまい、解決できません。
引数を与えて実行する際にもエラーメッセージが出てしまい、うまく動作しません。
DB : SQL Server 2005
プロシージャの引数にCSVファイルのフルパスを入れたいのですが、
エラーが出て困っています。
http://questionbox.jp.msn.com/qa262720.html
↑の回答も参考にしましたが、どうしても出来ません。
最初は以下のように書いていました。
BULK INSERT IDATA from ''+ @pass + '' with
(
fieldterminator = ',',
rowterminator = '\n'
)
このときは、プロシージャを作る段階で↓のエラーメッセージが出ました。
>メッセージ 1038、レベル 15、状態 1、プロシージャ sss、行 30
オブジェクト名または列名がないか、空です。SELECT INTO ステートメントの場合は、各列に名前が付いていることを確認してください。その他のステートメントの場合は、空の別名を検索してください。"" または [] で定義された別名は許可されません。別名として、名前または 1 つのスペースを追加してください。
>メッセージ 319、レベル 15、状態 1、プロシージャ sss、行 30
キーワード 'with' 付近に不適切な構文があります。このステートメントが共通テーブル式または xmlnamespaces 句の場合、前のステートメントをセミコロンで終了してください。
また、上記の回答を参考にしたところ、プロシージャは作成できましたが、
引数を与えて実行する段階で↓のエラーメッセージが出ました。
>メッセージ 203、レベル 16、状態 2、プロシージャ sss、行 32
名前 'BULK INSERT IDATA from '\\・・・\・・・\取込.csv' with ( fieldterminator = ',',rowterminator = '\n')' は有効な識別子ではありません。
引数で与えるのでなく、直接入力した場合は出来ます。
よろしくお願いします (><)
お礼
ありがとうございます! 出来ました!! 同じようなことを自分でも書いていたんですけどねー・・・ なにかが足りなかったんでしょうか(^^; 本当にありがとうございます。 あ、passはpathのつもりでした(汗 スペルミスです(>_<)