我正在使用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();
}
感谢您的帮助
答案 0 :(得分:4)
我认为你只需输掉'\ r'字符。