Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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
Sql 不支持创建或替换包体_Sql_Oracle_Build_Compiler Errors_Package - Fatal编程技术网

Sql 不支持创建或替换包体

Sql 不支持创建或替换包体,sql,oracle,build,compiler-errors,package,Sql,Oracle,Build,Compiler Errors,Package,创建或替换程序包…命令不受支持 我曾多次在包体或规范的驱动程序文件中使用@命令,其中旧版本的代码保持不变。新版本无法上载。当我删除有问题的包,并使用@This\u package\u SPEC.SQL时,甚至发生了这种情况。旧包裹会回来的。错误日志显示正常加载和编译的包 处理这个问题的一种方法是将这个\u包\u SPEC.SQL加载到开发人员中,并自己执行它 另一种方法是删除旧包,关闭并重新启动Oracle SQL Developer,然后正常运行 这个问题在使用Oracle SQL Devel

创建或替换
程序包…
命令不受支持

我曾多次在包体或规范的驱动程序文件中使用
@
命令,其中旧版本的代码保持不变。新版本无法上载。当我删除有问题的包,并使用
@This\u package\u SPEC.SQL
时,甚至发生了这种情况。旧包裹会回来的。错误日志显示正常加载和编译的包

处理这个问题的一种方法是将
这个\u包\u SPEC.SQL
加载到开发人员中,并自己执行它

另一种方法是删除旧包,关闭并重新启动Oracle SQL Developer,然后正常运行

这个问题在使用Oracle SQL Developer和SQLPlus时都已显现出来。在Unix和Linux环境中


还有人经历过这种情况吗?

没有,从没听说过这样的事。您确定它正在查找您期望的文件,而不是在中的某个位置查找旧版本吗?“驱动程序文件”是以
@file
-或
@/path/to/file
的方式调用的,并且您希望脚本调用的任何内容都位于同一路径中吗?我认为Oracle可能有一个bug,导致它在执行
创建或替换时在内部执行闪回查询以查找旧版本的代码软件包
。这个bug会在客户端和操作系统中跟踪你。然而,这似乎极不可能。您正在执行的文件更有可能在运行时包含旧代码。也许你在一个文本编辑器中打开了它,但是你没有保存你遇到的更改。我唯一经历过的是hen DevA和DevB出于某种原因在同一个包上工作,一个是使用外部文本编辑器编辑包,然后在脚本中运行,另一个是通过TOAD编辑包。蟾蜍家伙将单击“运行”,SQLPlus家伙将保存脚本,然后通过SQLPlus运行。所以两者都在互相覆盖。蟾蜍家伙在点击刷新时失败了,得到了脚本版本,在这一点上他丢失了更改。或者可能有人正在运行导入并包含PLSQL。我也不排除恶作剧的可能。我以前遇到过这种情况。这是(用哈尔的话说)“人为错误造成的”。。。我在一个位置编辑脚本的一个版本,但我的SQL*Plus会话是从另一个文件夹运行的。我曾经在一个完全自动化部署过程的地方工作过。它将定期从存储库获取最新版本,并将其部署到主开发服务器。在编写代码时,我们会有选择地关闭它。如果我们忘记关闭它,我们很快就会发现我们的更改在下次运行自动部署脚本时丢失了。不,从来没有听说过这样的事情。您确定它正在查找您期望的文件,而不是在中的某个位置查找旧版本吗?“驱动程序文件”是以
@file
-或
@/path/to/file
的方式调用的,并且您希望脚本调用的任何内容都位于同一路径中吗?我认为Oracle可能有一个bug,导致它在执行
创建或替换时在内部执行闪回查询以查找旧版本的代码软件包
。这个bug会在客户端和操作系统中跟踪你。然而,这似乎极不可能。您正在执行的文件更有可能在运行时包含旧代码。也许你在一个文本编辑器中打开了它,但是你没有保存你遇到的更改。我唯一经历过的是hen DevA和DevB出于某种原因在同一个包上工作,一个是使用外部文本编辑器编辑包,然后在脚本中运行,另一个是通过TOAD编辑包。蟾蜍家伙将单击“运行”,SQLPlus家伙将保存脚本,然后通过SQLPlus运行。所以两者都在互相覆盖。蟾蜍家伙在点击刷新时失败了,得到了脚本版本,在这一点上他丢失了更改。或者可能有人正在运行导入并包含PLSQL。我也不排除恶作剧的可能。我以前遇到过这种情况。这是(用哈尔的话说)“人为错误造成的”。。。我在一个位置编辑脚本的一个版本,但我的SQL*Plus会话是从另一个文件夹运行的。我曾经在一个完全自动化部署过程的地方工作过。它将定期从存储库获取最新版本,并将其部署到主开发服务器。在编写代码时,我们会有选择地关闭它。如果我们忘记关闭它,我们很快就会发现我们的更改在下次运行自动部署脚本时丢失。