问题标签 [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.
sql - ORACLE SQL:一个语句中的多个 SUMS 依赖于 CODE
我相信有一种方法可以做到这一点,但我不像许多其他人那样熟悉 ORACLE 10g。这是场景:
我目前正在将经典 ASP 页面转换为 ASP.net 2.0。我有一个正在创建报告的查询。它报告销售额与以前的销售额。目前正在发生的事情是,一个查询将发送到数据库并获取销售我们产品的位置的完整列表。然后,它遍历位置的每一行,并在 SQL 中运行一些求和操作。
它输出到其他几个表,汇总销售数量,然后将总和添加到表行等。由于位置查询返回大量结果,因此查询需要 2-3 分钟。
我的问题是如何将所有这些整合到一个查询中。
地点查询:
上述查询中每一行的总和查询如下:
不是循环遍历原始查询的每条记录,有没有一种方法可以组合查询并在 Location 的查询中使用 SUM。这里的关键是第二个查询仅在 t.code = 'C' 而不是 'C' & 'S' 时获取销售 SUM
oracle - 找出 PL/SQL 过程的名称
Oracle中的PL/SQL过程可以知道它自己的名字吗?
让我解释:
执行后%%something%%
,变量v_procedure_name
应包含“SOME_PROCEDURE”。如果它包含object_id
该过程也可以,因此我可以在all_objects
.
oracle - Oracle 默认值
我有一个关于 Oracle 中 PL/SQL 函数的默认值的快速问题。以这个程序为例;
这里的想法是,如果在调用此函数时没有为 varNumber 指定值,那么它将采用 0 的值。
现在,我的问题是我的函数是从一个 Web 服务层调用的,该层总是将 NULL 作为它没有值的参数的值传递。Oracle 将 NULL 解释为一个值,因此不会将 varNumber 初始化为其默认值 0。
我可以看到为什么这种方法是有意义的,但我想知道是否有一种方法可以覆盖这种行为,并使其在传递 NULL 值时使 Oracle 分配显式 DEFAULT 值,该值在函数头?
我已经考虑过进行手动检查的选项...
但是,有数百个函数可能会成为问题,更不用说每个函数有大量参数,所以如果我能找到更通用的解决方案,我会更喜欢它。
为您可以提供的任何见解而欢呼。
oracle - 使用 Oracle 异常
我想使用 Oracle 异常来处理下面代码中可能发生的错误。如果用户提供了数据库中不存在的图书 ID 和/或员工 ID,则会引发 NO_DATA_FOUND 异常。因此,我怎么知道哪个语句引发了这个异常。
我感谢任何建议或指导。谢谢你。
plsql - 使用 DBMS_CRYPTO 加密数据
我目前正在使用 Oracle 10g。我使用 DBMS_CRYPTO 包来加密用户登录密码。为了加密或解密数据,我必须有一个密钥。那么我应该将密钥放在哪里以便对其他开发人员隐藏它,或者是否有其他方法可以加密数据而无法解密?
在 SQL Server 中,我只是使用 PWDENCRYPT 函数进行加密,当我想比较用户输入的数据是否正确时,我使用 PWDCOMPARE。请建议。谢谢你。
oracle - Oracle - 使用包
我读过一些 PL SQL 编程书籍,它们建议我将过程、函数、游标等组合在一个包中。包提供模块化和信息隐藏,这是面向对象的设计。但是,我只熟悉独立程序。有人愿意提供一些代码示例以及如何从客户端调用包吗?我目前正在使用 ODP.NET 作为客户端应用程序中的数据访问。谢谢你。
sql - 如何找出存储过程最后一次在 Oracle 中修改或编译的时间?
我最好寻找一个 SQL 查询来完成此操作,但其他选项也可能有用。
sql - 您如何以编程方式识别存储过程的依赖关系?
是否可以编写一个 PL/SQL 查询来识别存储过程依赖项的完整列表?我只对识别其他存储过程感兴趣,而且我也不想限制嵌套的深度。例如,如果 A 调用 B,B 调用 C,C 调用 D,我希望 B、C 和 D 报告为 A 的依赖项。
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 是否正确:
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 公式,但它不起作用。