问题标签 [plsql-package]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
42613 浏览

oracle - 重载问题:错误(83,5):PLS-00307:“REPORTEQ”的声明过多与此调用匹配

所以我正在尝试使用重载,但我遇到了一些麻烦。我的包有 4 个名称相同但参数类型不同(VARCHAR2、NUMBER、BOOLEAN、DATE)的过程。包头和包体在我的问题的最后。

我正在尝试使用这样的包程序:

我收到了这个编译错误:

这是什么意思?


包头:

和包体:

0 投票
1 回答
929 浏览

plsql - Oracle 包规范何时变为无效

据我所知,可以在不影响规范的情况下替换和重新编译包体。包规范声明过程和函数,而不是定义它们,因此它们不能引用对象,这会使包规范无效。

我知道当一个包规范使用独立的子程序和其他包来定义它的变量时,它可以引用对象。在这种情况下,更改引用的对象可能会导致规范无效。

是否有任何其他方式,Oracle 包规范如何依赖(引用)对象并在引用对象更改或其他方式时变为无效?

0 投票
3 回答
41 浏览

plsql - 如何创建 PL/SQL 包以丢弃多级级联视图

0 投票
1 回答
653 浏览

sql - 我想在oracle数据库中插入十亿条记录

我必须在 oracle 数据库表中插入十亿条记录。我有 2 列。一列是一个序列号,一直到 1,000,000,000 第二列是一个 varchar2 字段...格式为 abc~122~373~7777777~5367 。即第一列必须包含 3 个随机字符,后跟 '~',然后是 3 个随机数,后跟 '~',然后是 3 个随机数,后跟 '~',然后是 7 个随机数,后跟 '~',最后是 4 个随机数通过'〜'。而且我需要所有记录都是唯一的。

0 投票
1 回答
380 浏览

sql - Db2:如何在 db2 中部署 Oracle PL/SQL 包?

我尝试在 Db2 中创建 Oracle PL/SQL 包,但遇到了错误。

当我运行上面的代码时,它会导致以下错误:

部署 [tnbdr]DB2INST1.ARITHMETIC 运行 DB2INST1.ARITHMETIC - 开始部署以进行调试。创建 PL/SQL 包规范返回 SQLCODE:-104,SQLSTATE:42601。 DB2INST1.ARITHMETIC:1:在“CREATE OR REPLACE”之后发现了意外的标记“PACKAGE”。预期的令牌可能包括:

“VIEW”.. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.18.60 在“CREATE OR REPLACE”之后发现了一个意外的标记“PACKAGE”。预期的标记可能包括:“VIEW”.. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.18.60 DB2INST1.ARITHMETIC - 部署调试失败。DB2INST1.ARITHMETIC - 回滚成功完成。

如何部署软件包,为什么会失败?

0 投票
1 回答
727 浏览

oracle - PL/SQL 插入和分区

我想首先说我还在学习 PL/SQL。我想知道您是否可以就以下主题/问题分享您的意见。基本上,我想通过一个包将表 X 中的数据插入到表 Y 中。我已经阅读了有关插入部分的内容,所以这很清楚,但是我想知道现有分区会发生什么。假设表 Y 有分区。当我们从表 X 中插入新数据时会发生什么?是否会被划分为分区?或者,如果我有间隔分区,它们会根据来自表 X 的传入数据增长吗?我需要“触发”/调用包内的分区吗?

预先感谢您的帮助!我只是在寻找提示和建议,以便我可以弄清楚如何设置我的表和包(以防我需要在那里调用分区)。例如,我是否应该有间隔分区。

感谢您的时间!

0 投票
1 回答
1233 浏览

stored-procedures - plsql中的全局变量

我创建了一个包。

在包规范中,我声明了一个变量l_emp_name varchar2(100);,我在各种过程中的包主体中使用该变量。

在第一个过程launch_workflow()中,我为该变量赋值。例如l_emp_name:='Sanket Katariya';

在该工作流程启动后。

approver_1 procedure我得到l_emp_nameas的值'sanket katariya',但在apporver_2 procedure我得到一个null值。

如果我再次设置l_emp_name:='Sanket Katariya';approver_1不是在其余程序approver_2、approver_3等中获得它的值。

所以从逻辑上讲,该变量应该在所有过程中都可以访问,对吧?

请帮助我理解这一点。为什么我需要将值设置为 in approver_1 procedure

0 投票
3 回答
425 浏览

sql - Oracle PLSQL:如何根据每个值使用替换变量?

在执行上述 PLSQL 块时,对于替换变量 &v_test 而不是提示输入 v_test 的值,它应该提示 v_test 中的值。即它应该提示'输入A的值'。所以每次如果我改变 v_test 的值,那么这个值应该会提示。

有什么解决办法吗?

0 投票
2 回答
2208 浏览

plsql - 使用嵌套表作为过程的参数

我有一个表 T1,我想通过使用集合的过程一次插入多行。我已经编写了代码,但是当我尝试执行它时会引发错误。请指教。


执行后出错

0 投票
2 回答
552 浏览

oracle - Oracle PL/SQL 不能识别 DATE 输入?

我有包裹:

与身体:

然而,当我调用包程序时:

,或我能想到的任何其他日期格式,Oracle 认为它是 VARCHAR 或 NUMBER。输出:

我在这里,一个 VARCHAR2
我在这里,一个数字
我在这里,一个 VARCHAR2

已处理报表。

唯一有效的是...

但我认为 Oracle 可以识别日期,因为它会进行隐式转换。我很困惑。

提前致谢。