Я использую System.Data.OracleClient.OracleCommand, чтобы создать таблицу и заполнить ее некоторыми данными. Используемый мной запрос выполняется нормально в PS / SQL Developer, однако, когда я пытаюсь выполнить его из приложения .NET, я получаю эту ошибку:
ORA-06550: line 1, column 20:
PLS-00103: Encountered the symbol "" when expecting one of the following:
begin function package pragma procedure subtype type use
<an identifier> <a double-quoted delimited-identifier> form
current cursor
Столбец 20 находится именно там, где заканчивается первая строка. Как только я удаляю символы конца строки (\ r \ n) из команды, все начинает работать.
Интересно, есть ли какой-то скрытый параметр конфигурации для включения многострочных запросов для Oracle?
Вот код:
var text = @"declare cnt number;
begin
select count(*) into cnt from all_tables
where table_name = 'TABLE_A';
if cnt = 1 then
begin
execute immediate 'truncate table TABLE_A';
execute immediate 'drop table TABLE_A';
end;
end if;
execute immediate 'create table TABLE_A as
(SELECT DISTINCT v.ID, g.ext_id FROM VIEW_A v
JOIN TABLE_B B ON v.id = B.Id
WHERE YEAR1 = ''2008'')';
end;");
var createTempTable = new OracleCommand(text, conn);
createTempTable.CommandType = CommandType.Text;
conn.Open();
try
{
createTempTable.ExecuteNonQuery();
}
catch(Exception ex)
{
throw;
}
finally
{
conn.Close();
}
Спасибо за вашу помощь