Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 动态';更改会话';在PL/SQL块中失败_Oracle_Plsql - Fatal编程技术网

Oracle 动态';更改会话';在PL/SQL块中失败

Oracle 动态';更改会话';在PL/SQL块中失败,oracle,plsql,Oracle,Plsql,我试图通过动态SQL更改PL/SQL块中的会话,但失败了。我正在使用以下脚本: BEGIN EXECUTE IMMEDIATE 'ALTER SESSION SET ISOLATION_LEVEL=READ COMMITED;'; UPDATE Test."column" SET "columnName" = 5 WHERE "columnType" = 606; end 我得到的错误是: ORA-00922: missing or invalid option ORA-06512: at l

我试图通过动态SQL更改PL/SQL块中的会话,但失败了。我正在使用以下脚本:

BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION SET ISOLATION_LEVEL=READ COMMITED;';
UPDATE Test."column" SET "columnName" = 5 WHERE "columnType" = 606;
end
我得到的错误是:

ORA-00922: missing or invalid option
ORA-06512: at line 2

我不确定我做错了什么,Oracle是否阻止在使用begin语句后更改会话?

您错过了提交的
中的一个Ts,如果您尝试执行的动态语句中有分号,通常会出现ORA-00911无效字符错误

应该是:

EXECUTE IMMEDIATE 'ALTER SESSION SET ISOLATION_LEVEL=READ COMMITTED';

. 您可能还想删除动态语句末尾的分号。我尝试过,得到了以下结果:ORA-06550:第3行,第1列:PLS-00103:在预期以下情况之一时遇到符号“UPDATE”:&=-+;at in是mod余数,不是错误的余数;我指的是动态语句中的分号,因为这通常会导致ORA-00911错误:
executeimmediate'ALTER SESSION SET ISOLATION_LEVEL=READ COMMITTED'谢谢!它起作用了!请将您的评论标记为回答:)您是否有机会帮助我将其添加到实体框架代码优先迁移中?与使用以下命令将其添加到Up()方法一样:Sql(“ALTER SESSION SET ISOLATION_LEVEL=READ committed”);看起来EF无法翻译我所拥有的。@TechNerd-对不起,不知道,从未使用过EF。但是检查它是否没有设置隔离级别的本机方法;以及它是否可以在
sql()
调用中运行整个匿名块,这可能是一个小技巧。在上面的注释中,您的
sql()
表达式中仍然缺少一个“T”。@TechNerd-ping您以确保您看到William关于仍然缺少T的注释。