作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 oracle 11g。我正在尝试使用命令在包内运行过程
execute package.procedure
但我一直收到异常
ERROR at line 1:
ORA-06550: line 1, column 12:
PLS-00302: component 'package' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
我创建的包和包体如下。我在这里实际上想做的是创建一个包,每次执行时用于创建表。所以我写了下面的脚本。
-----包
create or replace package pack1 as
end pack1 ;
/
------包体
create or replace package body pack1 as
procedure proc1
is
begin
execute immediate 'create table bcd(bc date)';
end ;
procedure proc2
is
begin
execute immediate 'create table bcde(bc number(12,0)) as select country_id from countries';
end ;
end pack1;
/
但是当我跑的时候
execute pack1.proc2 ;
它给了我上述异常。
有人可以帮我解决问题吗?
提前致谢
最佳答案
包中的过程和函数默认是私有(private)的。 To make them public you have to declare them in the package specification :
create or replace package pack1 as
procedure proc1;
procedure proc2;
end pack1;
/
尽管动态创建表格听起来不是个好主意。
关于oracle - 如何在包体中运行过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12563752/
我是一名优秀的程序员,十分优秀!