Проблема с несколькими оракульными запросами

Я пытаюсь запустить запрос с .NET-страницы, но, похоже, у меня проблемы с несколькими запросами.

Мой запрос аналогичен этому

SELECT * FROM table1; SELECT * from table2

Но я, кажется, получаю недопустимую ошибку персонажа при выполнении этого с .Net-страницы. Он отлично работает в SQL-разработчике, но только терпит неудачу, когда я помещаю его на мою страницу .NET.

Я добавил BEGIN и 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() 

    Если вы хотите извлечь из 2 таблиц и получить DataSet, который вы можете заполнить в DataAdapter, вам нужно использовать один из следующих подходов:

    1. соедините 2 таблицы вместе (возможно или не возможно в зависимости от ваших таблиц)
    2. объединяйте 2 таблицы (это может быть или не быть применимым к вашему сценарию)
    3. напишите хранимую процедуру, которая создаст любой результат, который вам нужен, и вернет его в курсор ref. Вы можете прочитать о том, как это сделать.

    Вы не сможете просто запустить 2 SQL-оператора, подобные этому, и получить какой-либо значимый результат в DataSet.

    Извинения за указание очевидного, но:

    1 .. Сделать 2 вызова

    или

    2 .. Поместите выборки в хранимую процедуру и верните 2 refcursors

    вот хорошая ссылка на работу с несколькими наборами результатов: http://msdn.microsoft.com/en-us/library/ms971506.aspx#msdnorsps_topic13

    Если вам нужны только поля, которые присутствуют в таблице 1 и таблице 2, вы можете сделать

     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 (это просто случайный пример)

    Если две таблицы содержат совершенно другой контент, вы должны действительно использовать два отдельных запроса.

    Возможным решением может быть

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

    … как показано в DataSet.Load: загрузка нескольких таблиц с помощью System.Data.OracleClient.OracleDataReader … но не проверена сама.

    Также ознакомьтесь с http://forums.asp.net/t/629511.aspx/1 . Он показывает, как, вроде. Я добавил ссылку на Oracle.DataAccess.Types ;, но все же возникла проблема. Хотя это близко.