标签: plsql

根据oracle apex中的条件更改穿梭机的文本颜色

我在 oracle apex 中有两个不同的表,第一个是包含 KPI 的文档表,第二个是包含所有 KPI 结果的结果表。

我在页面中创建了一个穿梭机,用于从文档表中选择 KPI,然后将结果插入到结果表中。我需要的是,如果文档表中显示的 KPI 在结果表中没有任何结果,则它应该以红色显示。可以这样做吗?注意:表之间连接的主键和外键是kpicode

这是航天飞机的屏幕截图:

在此输入图像描述

以下是航天飞机的 SQL 查询,用于从文档表中获取所有 KPI:

select distinct kpi as k1, kpicode as k2
from documentation
where kpi is not null;
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql oracle-apex apex

2
推荐指数
1
解决办法
616
查看次数

如何获取触发器中要执行ddl操作的表名

我想做类似的事情

create or replace trigger t1 before ddl on database
begin
insert into table1 values(//the table name on which the ddl will be performed);
end;

Run Code Online (Sandbox Code Playgroud)

所以如果我创建一个名为“Hello”的表,那么“Hello”(表名)将被插入到 table1 中

所以我不知道如何实际获取表名

security oracle plsql

2
推荐指数
1
解决办法
133
查看次数

将自动递增值分配给Oracle中的新列

我在Oracle数据库中有这个表,它有一个在3个数据列上定义的主键.我想删除主键约束以允许具有这些列的重复数据的行,并创建一个新列"id",以包含这些行的自动递增整数ID.我知道如何创建一个序列并触发为添加到表中的新行添加自动递增ID,但是是否可以编写PL/SQL语句以向表中已有的所有行添加唯一ID?

oracle plsql

1
推荐指数
1
解决办法
4301
查看次数

从Oracle 9i中的嵌套查询中进行选择

在MS SQL 2005或T-SQL中,您可以执行以下操作:

SELECT T.NAME, T.DATE 
  FROM (SELECT * FROM MyTable WHERE ....) AS T
Run Code Online (Sandbox Code Playgroud)

我没能在Oracle 9i DB上尝试类似的SQL.在MS SQL中,嵌套SQL被视为在fly上创建的临时/动态视图,之后被销毁.我怎样才能在Oracle中做类似的事情?我真的不想创建一个视图来做到这一点.

oracle plsql

1
推荐指数
1
解决办法
6053
查看次数

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

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

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

它会转到其他几个表,总结销售数量,然后将总和添加到表行等.由于位置查询返回了大量结果,查询需要2-3分钟.

我的问题是如何将这些全部合并到一个查询中.

地点查询:

SELECT DISTINCT t.location, 
  l.city, 
  f.year, 
  f.customer FROM loc t, 
location l, father_table f 
WHERE f.number = t.number(+) 
AND f.code = '0001' 
AND f.c_code = '01' 
AND t.location= l.code(+) 
AND t.code IN ('C', 'S') 
AND t.co_code IN ('G', 'V', 'A', 'D') 
AND t.year = '2008' 
ORDER BY l.city, f.year
Run Code Online (Sandbox Code Playgroud)

上述查询中每个行的总和查询是:

SELECT SUM(nvl(t.sale_quantity,0)) sale_quantity 
FROM loc t, father_table f  
WHERE f.number = t.number(+) 
AND f.code = '0001' 
AND f.c_code = '01'
AND f.year = '2008' …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql oracle10g

1
推荐指数
1
解决办法
5194
查看次数

正则表达式为C#中的模式获取所有可能的匹配

我正在学习正则表达式并需要一些帮助来获得字符串模式的所有可能匹配.

如果我的输入是:

case a
when cond1 
then stmt1;
when cond2 
then stmt2;
end case;
Run Code Online (Sandbox Code Playgroud)

我需要获得具有如下组的比赛

组别1:

  1. "cond1"
  2. "stmt1;"

和Group2:

  1. "cond2"
  2. "stmt2;"

是否可以使用任何正则表达式获得此类组?

c# regex parsing plsql

1
推荐指数
1
解决办法
2万
查看次数

Oracle:如何"以后"运行存储过程

我们有一个系统允许用户将数据连接到数据库,以设置各种规则,用于在数据合并到主表之前更改数据.例如,订单可能有一条规则,根据客户的地址设置要使用的送货公司.

这最初仅用于对正在加载的数据进行操作,因此它仅限于可以从select语句调用的函数.需要注意的一点是,数据尚未在目标表中.

现在,我有一个项目需要更新到另一个表(很好 - 我可以使用autonomous_transaction pragma).但是,我需要运行一些需要在数据运行之前插入数据的函数(即它们是聚合数据).

所以,我真的想排队运行我的程序直到一段时间后(它不依赖于时间).

我如何在Oracle中执行此操作?当我只是想做一些简单的事情时,丰富的文档是相当的压倒性的.

oracle plsql

1
推荐指数
1
解决办法
3788
查看次数

Oracle/PLSQL性能

将存储过程分解为多个过程而不是执行大过程时,性能是否有任何差异?
哪一个更快?

例如:

mainSP
  callSP1
  callSP2
  callSP3
end;
Run Code Online (Sandbox Code Playgroud)

而不是:

SP
  .... 
  ....
  ....  
Run Code Online (Sandbox Code Playgroud)

oracle performance plsql stored-procedures

1
推荐指数
2
解决办法
410
查看次数

在Oracle中,是否有一个函数可以计算两个日期之间的差异?

在Oracle中,是否有一个函数可以计算两个日期之间的差异?如果没有,是一种以小时和分钟显示两个日期之间差异的方法吗?

查询:

SELECT Round(max((EndDate - StartDate ) * 24), 2) as MaximumScheduleTime,
       Round(min((EndDate - StartDate) * 24), 2)  as MinimumScheduleTime,
       Round(avg((EndDate - StartDate) * 24), 2) as AveragegScheduleTime
FROM table1
Run Code Online (Sandbox Code Playgroud)

oracle plsql

1
推荐指数
2
解决办法
5万
查看次数

Oracle 10g PL/SQL-选择结果作为更新列值

有没有办法轻松/优雅地更新表中的多个列,其中包含Oracle 10g中查询的记录值?

我有一个表(称之为Source),它有简单的缘故,2列, ID和KEY.

ID     Key
----   ---- 
1        1000
2        1000
3        5000
4        1000
..
101      8000
102      9000
103      7000
104      9000
...
201         5
202         5
...

我有另一个表(称之为KeyMap),它接受trunc(ID/100)并使用它作为一个batchID 列,它是批处理中ID的键映射:

trunc(ID/100)   key1   key2   key3   key4 ..... key99
-------------   ----   ----   ----   ----
0               1000   1000   5000   1000
1               8000   9000   7000   9000
2                  5      5               

ID是分批创建和处理的,因此在批处理结束时,我想调用一个存储过程来使用提供这些键的子选择或集合更新KeyMap表中的记录,并Key使用1更新语句更新新值值.

这是可能的,这是最好/最有效的方法吗?

sql oracle plsql oracle10g

1
推荐指数
1
解决办法
8810
查看次数