• ベストアンサー

ストアドプロシージャーのパラメーターに配列

以下、どうか教えてください SQLserver2000+ASPでWEBアプリを作っています。 2006/9/1/1, 2006/9/2/1, 2006/9/3/1, 2006/9/4/1, 2006/9/5/1 ↑こんな感じのデータを配列のまま、ストアドに渡して、 テーブルを更新することは出来るのでしょうか? よろしくお願いします

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

  • ベストアンサー
  • fantom
  • ベストアンサー率31% (30/94)
回答No.1

あまり自信はないですが配列では渡せなかったと思います。 代案として思いつく方法としては以下のような方法が考えられます。 1.カンマ区切りの文字列で渡して、カンマで要素を分解して利用する 2.動的にストアドを作成して実行 3.中間ファイル(一時テーブルなど)に データを格納してストアド側で中間ファイルを読み出して利用 これ以外にも、まだ他にいい方法があるかもしれません。

その他の回答 (1)

回答No.2

XML にして引き渡すなんてのもいけるかもしれませんね。 試してないのでアイデアだけですが。

関連するQ&A

  • ストアドプロシージャについて

    Access2003とSQL Server2005Expressです。 初歩的な質問で恐縮です。 以下のストアドプロシージャのデータ取得先を、テーブルではなく 別のストアドプロシージャにしたいのですが、 その方法がわかりません。 CREATE PROCEDURE テスト AS SELECT コード, 社名, 住所, 電話 FROM 名簿     ↑     これをテーブルではなく、別のストアドプロシージャを     指定したのですが・・・。     ここをストアドプロシージャ名にするとエラーになります。     どうすればよろしいでしょうか?

  • :ストアドプロシージャ内での配列の使用:

    :ストアドプロシージャ内での配列の使用: 環境 アプリケーション側:C#.net データベース側:Oracle10g アプリケーションから文字列の配列を引数として渡し、 プロシージャ内でその配列の中身がなくなるまでループでUPDATE文を実行しようとしています。 引数例(文字列配列):para[] (para[0]='ねこ',para[1]='ねずみ',para[2]='たぬき',para[3]='人',…) While文1週目では「ねこ」を、2週目では「ねずみ」をSET句に格納したSQLを実行するのが目的です。 同じストアド内であれば、結果セットをカーソルに放り込み フェッチ&Whileで順番に取得する事ができますが、 外部から引数として渡された配列をストアド内ループで順番に取得するにはどうしたらよいのでしょうか? アプリ側で引数を特定してから渡せば配列個数文ストアドをコールするという手段が取れますが 配列数が多くなった時に遅くなりすぎるという問題があります。 どなたか詳しい方おりましたらご教授いただきたく思います。宜しくお願いします。

  • ストアドプロシージャ

    以下のような事が行いたいのですが、うまくいきません。  <テーブル1>   id  計算式    1  注文数×単価    2  在庫数×単価  <テーブル2>    No. 注文数 在庫数 単価    A   50   20  500    B   70   85  860 ここで、テーブル1より計算式を検索し、 その計算式をもとにテーブル2のデータを計算したいのです。 ストアドプロシージャ等を使用すれば出来るのかとおもったのですが、 どうしてもうまくいきません。 このようなことはできないのでしょうか? 開発環境  ORACLE 8.1.7

  • ストアドプロシージャ

    ストアド初心者ですが Oracle 9iのストアドプロシージャを作成したいのですが 全くわからず困っています。 とりあえず、以下のテーブルが既に存在し 受注番号がわかっていて、商品名、数量、単価の変更を ストアドプロシージャでおこなうにはどのようにすればよいでしょうか? ご教授お願い致します。 ********************************************** テーブル名:TEST 項目1:受注番号 項目2:商品名 項目3:数量 項目4:単価 項目5:受注日 PS. ストアドのわかりやすい解説書やホームページ お知りの方いらっしゃいましたら、ご教授お願い致します。

  • ストアドプロシージャについて

    教えてください。 NT4.0上でAccess2000+MSDEで使用しているのです。 ストアドプロシージャでUPDATE文のあとにSELECT文を使い更新したデータを受け取ろうとしているのですが、実行すると「ストアドプロシージャは実行されましたがレコードは返されませんでした。」とメッセージが表示されるだけなのです。UPDATE文を注釈にするとレコードは返されるのでデータはあるのだと思います。 宜しくお願いします。

  • PerlからOracleのストアドを呼びたいのですが、パラメータに配列は使えますか?

    Perl(5.005_03) からOracle(8i)のストアドを呼びたいのですが、パラメータに配列は使えますか? 使えるのなら、以下のようなストアドをPerl側から呼ぶには、どうすればよいでしょうか? ---------------------------------------------------------------------- /* 配列型 */ CREATE OR REPLACE PACKAGE text_util IS   TYPE vc_arr IS TABLE OF VARCHAR2(10)   INDEX BY BINARY_INTEGER; END; / /* 呼びたいストアド */ CREATE OR REPLACE PROCEDURE TEST_PROC ( v_DATA in text_util.vc_arr, i_IDX in INTEGER ) IS END; / ---------------------------------------------------------------------- よろしくお願いします。 【環境】sun4-solaris, apache

  • SQLServerでのストアドプロシージャのデバッグ

    タイトルのまんまです。 SQLServerでの ストアドプロシージャのデバッグ のやり方を教えてください。 よろしくお願いします。

  • ASPからストアドプロシージャにパラメータが渡せない

    正常に動作していたASPに、ストアドプロシージャに渡すパラメータを追加してブラウザでテストをしたのですが、「データの型が一致しない」という意味あいのエラーメッセージが表示されます。 しかし、送り側はHTMLのテキストボックスに入力された値で、受け取り側はvarchar型ですので、間違っていないはずです。 また、追加したパラメータ以外のパラメータをコメントにして実行すると、正常に動作します。 同じ開発チームの方から、「パラメータとして渡すときに、バイト数に制限があるのでは?」とか、「そのような事に関することがマイクロソフトのバグ情報に載っていた記憶がある」とか教えていただいたのですが、それらしき項目はありませんでした。 また、ストアドプロシージャ単体では、正常に動作しています。 どなたかわかる方、よろしくお願いいたします。

  • 【SQLServer ストアドプロシージャ】 変数の定義型について

    SQLServer暦が浅くいまいち把握できていないので 詳しい方教えてください。 SQLServerのストアドでは変数の型に、既存のテーブルの型を流用できないのでしょうか? ORAcleでは以下のような定義が出来たので不便に感じています。 【テーブルM_USER】 USER_ID VARCHAR2(8) USER_NANE VARCHAR2(50) ・・・ ・・・ 上記のようなテーブルがある場合、 変数を「VAR_USER_ID M_USER.USER_ID@TYPE」 のような宣言ができ、 VAR_USER_ID変数はテーブルM_USERのUSER_IDと同じ型、ということになります。 SQLSERVERではこのようなことは出来ないのでしょうか?

  • ストアドの書き方?

    Aテーブルに同じフィールドを持ったcsvをd, e, f, g と4つのフィールドを比べて 1つでも違っていたら、insertするというSQLをつくりたいのですが、 これは、ストアドになるのでしょうか? データはだいたい5万件くらいあります。 サーバーはSQLServerになります。 宜しくお願い致します。