问题标签 [plsql]

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 投票
1 回答
5308 浏览

sql - ORACLE SQL:一个语句中的多个 SUMS 依赖于 CODE

我相信有一种方法可以做到这一点,但我不像许多其他人那样熟悉 ORACLE 10g。这是场景:

我目前正在将经典 ASP 页面转换为 ASP.net 2.0。我有一个正在创建报告的查询。它报告销售额与以前的销售额。目前正在发生的事情是,一个查询将发送到数据库并获取销售我们产品的位置的完整列表。然后,它遍历位置的每一行,并在 SQL 中运行一些求和操作。

它输出到其他几个表,汇总销售数量,然后将总和添加到表行等。由于位置查询返回大量结果,因此查询需要 2-3 分钟。

我的问题是如何将所有这些整合到一个查询中。

地点查询:

上述查询中每一行的总和查询如下:

不是循环遍历原始查询的每条记录,有没有一种方法可以组合查询并在 Location 的查询中使用 SUM。这里的关键是第二个查询仅在 t.code = 'C' 而不是 'C' & 'S' 时获取销售 SUM

0 投票
4 回答
27910 浏览

oracle - 找出 PL/SQL 过程的名称

Oracle中的PL/SQL过程可以知道它自己的名字吗?

让我解释:

执行后%%something%%,变量v_procedure_name应包含“SOME_PROCEDURE”。如果它包含object_id该过程也可以,因此我可以在all_objects.

0 投票
3 回答
19743 浏览

oracle - Oracle 默认值

我有一个关于 Oracle 中 PL/SQL 函数的默认值的快速问题。以这个程序为例;

这里的想法是,如果在调用此函数时没有为 varNumber 指定值,那么它将采用 0 的值。

现在,我的问题是我的函数是从一个 Web 服务层调用的,该层总是将 NULL 作为它没有值的参数的值传递。Oracle 将 NULL 解释为一个值,因此不会将 varNumber 初始化为其默认值 0。

我可以看到为什么这种方法是有意义的,但我想知道是否有一种方法可以覆盖这种行为,并使其在传递 NULL 值时使 Oracle 分配显式 DEFAULT 值,该值在函数头?

我已经考虑过进行手动检查的选项...

但是,有数百个函数可能会成为问题,更不用说每个函数有大量参数,所以如果我能找到更通用的解决方案,我会更喜欢它。

为您可以提供的任何见解而欢呼。

0 投票
2 回答
1358 浏览

oracle - 使用 Oracle 异常

我想使用 Oracle 异常来处理下面代码中可能发生的错误。如果用户提供了数据库中不存在的图书 ID 和/或员工 ID,则会引发 NO_DATA_FOUND 异常。因此,我怎么知道哪个语句引发了这个异常。

我感谢任何建议或指导。谢谢你。

0 投票
1 回答
5284 浏览

plsql - 使用 DBMS_CRYPTO 加密数据

我目前正在使用 Oracle 10g。我使用 DBMS_CRYPTO 包来加密用户登录密码。为了加密或解密数据,我必须有一个密钥。那么我应该将密钥放在哪里以便对其他开发人员隐藏它,或者是否有其他方法可以加密数据而无法解密?

在 SQL Server 中,我只是使用 PWDENCRYPT 函数进行加密,当我想比较用户输入的数据是否正确时,我使用 PWDCOMPARE。请建议。谢谢你。

0 投票
4 回答
2254 浏览

oracle - Oracle - 使用包

我读过一些 PL SQL 编程书籍,它们建议我将过程、函数、游标等组合在一个包中。包提供模块化和信息隐藏,这是面向对象的设计。但是,我只熟悉独立程序。有人愿意提供一些代码示例以及如何从客户端调用包吗?我目前正在使用 ODP.NET 作为客户端应用程序中的数据访问。谢谢你。

0 投票
4 回答
94162 浏览

sql - 如何找出存储过程最后一次在 Oracle 中修改或编译的时间?

我最好寻找一个 SQL 查询来完成此操作,但其他选项也可能有用。

0 投票
4 回答
7162 浏览

sql - 您如何以编程方式识别存储过程的依赖关系?

是否可以编写一个 PL/SQL 查询来识别存储过程依赖项的完整列表?我只对识别其他存储过程感兴趣,而且我也不想限制嵌套的深度。例如,如果 A 调用 B,B 调用 C,C 调用 D,我希望 B、C 和 D 报告为 A 的依赖项。

0 投票
8 回答
26488 浏览

oracle - SELECT COUNT(*) 与使用显式游标获取两次

我读过 Steven Feuerstein 和 Bill Pribyl 的书,书名是“Oracle PL SQL Programming”(第 2 版)。在第 99 页,有一点建议是

不要从表中“SELECT COUNT(*)”,除非您确实需要知道“命中”的总数。如果您只需要知道是否有多个匹配项,只需使用显式游标获取两次即可。

您可以通过提供示例向我进一步解释这一点吗?谢谢你。

更新:

正如 Steven Feuerstein 和 Bill Pribyl 建议我们不要使用 SELECT COUNT() 来检查表中的记录是否存在,任何人都可以帮我编辑下面的代码以避免使用显式游标来使用 SELECT COUNT(*) 吗?此代码是在 Oracle 存储过程中编写的。

我有一个表 emp(emp_id, emp_name, ...),所以要检查提供的员工 ID 是否正确:

0 投票
11 回答
62523 浏览

html - Oracle 到 Excel - PL/SQL 导出过程

我正在编写将数据从 Oracle 导出到 Excel 的 pl/sql 过程。我需要数据格式,所以我不能使用 CSV。我已经尝试过使用 XML,但是当我想导出例如 70000 行和 50 列(几乎 300 MB !!!)时,它会生成太大的文件。

这就是为什么我决定使用 HTML 标签来生成 XLS 文件的原因——它比 XML 小,我必须直接定义一些特殊列的格式(字符串、数字和日期由 Excel 自动格式化)。它非常简单方便,但我不能定义多个工作表。

您知道如何在使用 HTML 编写的 excel 文件中添加/定义多个工作表吗?我尝试使用像 <% ActiveWorkbook.Worksheet.Add %> 这样的 VBScript 公式,但它不起作用。