plsql相关内容

在 PL/SQL 过程中,在 HTML 表中包装查询或引用

如果您使用 SQL*Plus 来使用,那看起来真的很容易 SQL>设置标记html; 并在 SQL*Plus 窗口中获得一些可爱的结果.我们有一个 oracle 工作,它会在一夜之间运行,并将结果通过电子邮件发送给许多人.我想将 sql 语句包装在 HTML 表中以包含在该消息中.这样做的最佳方法是什么? 解决方案 来自 在 DBA 站点 我接近了我正在寻找的答案.Tom Kyte 有 ..
发布时间:2021-12-24 16:33:44 数据库

查询帮助 - where 子句中的字符串有 &特点

我正在运行这样的 SQL (Oracle) 语句 select * from table其中 table_id in ('265&310', '266&320') 在运行 TOAD 时,它会将 & 视为某个变量占位符并询问其值.如果是 1-2 个占位符,那么我可以在 TOAD 中设置它,但 in 子句有 200 个字符串. 这个查询怎么写? 我想将 DATASET 导出为 SQL ..
发布时间:2021-12-24 16:33:34 数据库

在 Oracle 中插入一百万行的最快方法

对于以下过程,我如何以最佳方式在 Oracle 中插入超过一百万行?如果我将 FOR 循环增加到一百万行,它就会挂起. 创建或替换过程 inst_prc1 为xsn号码;xcount 数;l_start 数;l_end 数;游标 c1 是 select max(ssn)S1 from dtr_debtors1;开始l_start := DBMS_UTILITY.GET_TIME;FOR I IN ..
发布时间:2021-12-24 16:33:26 数据库

Oracle - 字符串组合排列

我想我有一个复杂的要求. 这是一个使用 Oracle 10.2 的组合排列,我能够使用笛卡尔连接解决它,但我认为它需要一些改进以使其更简单和更灵活. 主要行为. 输入字符串:'一二' 输出:'一''二''一二'“两个一" 对于我的解决方案,我将字符串的数量限制为 5(请注意,输出是阶乘附近的数字) SQL: with My_Input_String as ( ..
发布时间:2021-12-24 16:33:14 数据库

当我想在比较中使用它们时,我应该如何处理 PL/SQL 存储过程中的空参数?

我有一个带有参数 name 的存储过程,我想在 where 子句中使用它来匹配列的值,例如 where col1 = name 当然,由于 null 的工作方式,这当然无法将 null 匹配到 null.我需要做吗 where ((name is null and col1 is null) or col1 = name) 在这种情况下,或者有更简洁的方法吗? 解决方案 您可以 ..
发布时间:2021-12-24 16:33:05 数据库

从 JDBC 调用 Oracle 面向对象的 PL/SQL 成员过程

在面向对象的 PL/SQL 中,我可以向类型添加成员过程和函数.这里给出了一个例子: 创建类型 foo_type 作为对象 (富号,成员过程 proc(p in number),成员函数 func(p in number) 返回数字);创建类型主体 foo_type 作为成员过程 proc(p in number) is begin富 := p*2;结束过程;成员函数 func(p in num ..
发布时间:2021-12-24 16:32:56 数据库

SQL Pivot 是否可以执行以下查询?

假设我有以下表格: 创建表student(身份证号码不为空,名称 varchar2(80),主键(id));创建表类(身份证号码不为空,主题 varchar2(80),主键(id));创建表 class_meeting(身份证号码不为空,class_id 编号不为空,会议序列号,主键(id),外键(class_id)引用类(id));创建表 meeting_attendance(身份证号码不为空 ..
发布时间:2021-12-24 16:32:47 数据库

如何在 Oracle PL/SQL where 子句中使用变量

我似乎无法让变量在 Oracle PL/SQL where 子句中工作.我来自 Microsoft SQL Server 背景,这很容易.例如,执行与以下类似的操作所需的所有步骤是什么? 声明@var int set @var = 1select * from SomeTable where SomeField = @var 这在 PL/SQL 中似乎并不难,但显然确实如此.:-/我听说我需要 ..
发布时间:2021-12-24 16:32:40 数据库

Oracle PL/SQL:将整行从触发器转发到过程

有一个 Oracle (10i) PL/SQL 行级触发器,它负责三个独立的任务.由于触发器在这种情况下相对混乱,我想将这三个任务导出到三个存储过程中.我正在考虑使用 my_table%ROWTYPE 参数或过程的集合类型,但我主要关心的是如何填充这些参数. 有没有办法轻松地将触发器的整个 :NEW 行放入单个变量中?到目前为止,我能找到的唯一方法是将每个字段单独分配给不太令人满意的变量,查 ..
发布时间:2021-12-24 16:32:36 数据库

Oracle 中的循环游标

请解释一下如何在 oracle 中使用游标 for 循环. 如果我使用下一个代码,一切都很好. for rec in (select id, name from Students) 循环- 做任何事情结束循环; 但是如果我为这个 sql 语句定义了变量,它就不起作用了. v_sql := 'select id, name from student';for rec 在 v_sql ..
发布时间:2021-12-24 16:32:29 数据库

从 Oracle PL/SQL 使用 Web 服务

我们的应用程序最近与许多网络服务交互.我们有自己的软件包,几年前有人使用 UTL_HTTP 编写了它,它通常可以工作,但需要对 SOAP 信封进行一些硬编码才能与某些系统一起使用.我想让它更通用,但缺乏经验来知道我必须处理多少场景.变化在于需要声明的命名空间和元素的格式.我们必须处理带有少量参数的简单调用和以编码字符串传递大量数据的调用. 我知道 10g 有 UTL_DBWS,但在线的用例并 ..
发布时间:2021-12-24 16:32:20 数据库

Oracle:创建一个带有 Auto Increment id 列的视图

我创建了一个 view 来填充来自不同表的数据.我使用了 10 个 select 语句,并使用 UNION ALL 组合了这些 select 语句的结果. 我想将 primary key column 添加到我的视图中.因为我必须使用此 view 中的数据创建 XML 文件.所以我需要一个 primary key column 用于我的 XML 构建应用程序中的某些过程. 我已将 ro ..
发布时间:2021-12-24 16:32:11 数据库

SQL 多条件 CTE 递归

我在数据库中为每个标识符提供了以下 2 条信息.控制他们的公司,以及他们拥有少量控制权的公司. 大致上,2个表(忽略一些唯一标识符): 组织 orgid |org_immediate_parent_orgid1 |22 |23 |15 |4 关系 orgid --> org_immediate_parent_orgid 表示公司有父级.对我来说,它只有相关的 org_immedia ..

Oracle:排除用于触发触发器的一列的更新

在 oracle 中,我可以指定列,这应该会引发触发器的触发: 创建或替换触发器 my_trigger在为每一行更新 my_table 上的 col1、col2、col3 之前开始//只有在更新了 col1 或 col2 或 col3 时才会执行触发代码结尾; 现在我想执行以下操作:当仅更新一列时,我不希望触发触发器.这怎么可能? 我可以列出除列之外的所有列,这些列不应导致触发触发器.这 ..
发布时间:2021-12-24 16:31:54 数据库

update x set y = null 需要很长时间

在工作中,我有一个大表(大约 300 万行,例如 40-50 列).我有时需要清空一些列并用新数据填充它们.没想到的是 UPDATE table1 SET y = null 比用生成的数据填充列花费的时间要多得多,例如,在 sql 查询中来自同一表的其他列或从子查询中的其他表查询.我是否一次遍历所有表行(如上面的更新查询中)或我是否使用游标逐行遍历表(使用 pk)都没有关系.无论我在工作中使用 ..
发布时间:2021-12-24 16:31:43 数据库

如何在异常处理块中重新引发 pl/sql 异常?

我有一些应用程序使用以下程序: 过程p1是开始bla bla bla;结尾; 但是没有异常处理块.所以应用程序就是根据这个特性编写的. 现在我需要在 p1 中记录错误.但它不应该影响使用此过程的应用程序. 像这样: 过程p1是开始bla bla bla;例外,当其他人然后日志错误(sqlcode,sqlerrm);raise_new_exception (sqlcode, sql ..
发布时间:2021-12-24 16:31:32 数据库

PL/SQL 检查查询是否返回空

我正在编写一个程序,我需要检查我的选择查询是否返回了空记录.(本例中是否没有x,y架子) 我该怎么做? 我试过了: tempshes.loadability%TYPE := NULL;开始从货架中选择可装载性到 temp 中,其中 rownumber = x 和 columnnumber = y;如果 temp 不是 NULL 那么/* 当它不为空时做一些事情 */别的/* 当它为空 ..
发布时间:2021-12-24 16:31:21 其他开发

并行运行/执行多个过程 - Oracle PL/SQL

我有一个活动表,它正在获取系统的所有表事件.新订单、所有系统表上的插入/删除等事件都将插入到该表中.因此,活动表的事件数/秒非常大. 现在,我想根据负责引发事件的表根据业务逻辑处理传入事件.每个表可能有不同的程序来做处理. 我使用了相同的链接PL/SQL 中的并行调用 作为解决方案,我创建了多个将同时调用的 dbms_scheduler 作业.所有这些作业 (JOB1, JOB2 ..
发布时间:2021-12-24 16:31:13 数据库