4

.NET ページからクエリを実行しようとしていますが、複数のクエリがあると問題が発生するようです。

私のクエリはこれに似ています

SELECT * FROM table1; SELECT * from table2

しかし、.Net ページからこれを実行すると、無効な文字エラーが発生するようです。SQL 開発者では問題なく動作しますが、.NET ページに配置したときにのみ失敗します。

一部の Web サイトでは複数のクエリを実行するためにこれが必要であると示唆されているため、クエリにBEGINandを追加しましたが、次のエラーが表示されます。END

ORA-06550: 行1、列7: PLS-00428: このSELECT文にはINTO句が必要です

誰でもこれに光を当てることができますか?

前もって感謝します!

編集

ここにいくつかのコードがあります

        query = conn.CreateCommand()

        query.CommandText = "SELECT * from table1; SELECT * FROM table2;"

        DataSet = New DataSet()
        DataAdapter = New DataAdapter(query)
        DataAdapter.Fill(DataSet)

        datagrid1.DataSource = DataSet.Tables(0)
        datagrid1.DataBind()

        lbl1.Text = DataSet.Tables(1).Rows(0).Item("column1").ToString()
4

4 に答える 4

4

2 つのテーブルからプルして、DataAdapter に入力できる DataSet を取得する場合は、次のいずれかの方法を使用する必要があります。

  1. 2 つのテーブルを結合します (テーブルによっては、可能または不可能な場合があります)。
  2. 2 つのテーブルを結合します (これはシナリオに当てはまる場合と当てはまらない場合があります)
  3. 必要な結果を作成し、それを ref カーソルに返すストアド プロシージャを記述します。その方法については、こちらをご覧ください。

そのような 2 つの SQL ステートメントを実行して、意味のある結果を DataSet に入れることはできません。

于 2011-07-14T10:51:45.830 に答える
0

明白なことを述べて申し訳ありませんが:

1.. 2 回電話をかける

また

2.. select をストアド プロシージャに入れ、2 つの参照カーソルを返す

複数の結果セットの操作に関する適切なリンクは次のとおりです 。 http://msdn.microsoft.com/en-us/library/ms971506.aspx#msdnorsps_topic13

于 2011-07-14T10:52:44.780 に答える
0

table1 と table2 の両方に存在するフィールドのみが必要な場合は、次のことができます

SELECT field1, field2, field3 FROM table1
UNION
SELECT field1, field2, field3 FROM table2

フィールドの名前が異なるが、同じタイプのコンテンツを実行できる場合

SELECT tab1_id AS primary_key, tab1_name AS name, tab1_amount AS amount FROM table1
UNION
SELECT tab2_id AS primary_key, tab2_name AS name, tab2_amount AS amount FROM table2

これにより、列 primary_key、name、amount の結果が得られます (これはランダムな例です)。

2 つのテーブルにまったく異なるコンテンツが含まれている場合は、実際には 2 つの別個のクエリを使用する必要があります。

于 2011-07-14T11:01:30.310 に答える
0

考えられる解決策は

query.CommandText = "BEGIN OPEN :1 FOR SELECT * FROM table1; OPEN :2 FOR SELECT * FROM table2; END;"; 

... DataSet.Load にあるように: Loading multiple tables with System.Data.OracleClient.OracleDataReader ... しかし、自分でテストしていません。

http://forums.asp.net/t/629511.aspx/1もチェックしてください。それは、一種の方法を示しています。Oracle.DataAccess.Types; への参照を追加しましたが、まだ問題がありました。近いけど。

于 2011-07-14T11:01:52.833 に答える