小编wwe*_*ker的帖子

触发检查重复项

我正在编写触发器,但遇到了一些问题。触发器执行并编译没有错误,但是由于某些原因,它没有完成我想要的工作。如果有人可以帮助我。

这是问题:

编写要在插入,更新属性时执行的触发器。输入的每个属性都将与其他具有相同属性的属性进行检查:代理,所有者,地址,如果找到一个,则将属性状态更新为“双重”。

我要插入相同的数据,但我可以这样做,但通常不会!

这是我的桌子:

create table Properties(  
            idProperties number(10) NOT NULL,
        Type varchar2(45) NOT NULL,
        SquareMeters varchar2(10) NOT NULL,
        Rooms number(10) NOT NULL,
        ConstructionDate date NOT NULL,
        FloorLocation varchar(20),
        Price number(10) NOT NULL,
        CityView varchar2(20),
        DateOfInsert date NOT NULL,
        DateOfExiration date NOT NULL,
        Address_FK number(20),
        Service_FK number(20),
        Ownership_FK number(20),
        Status_FK number(20),
        PropertyService_FK number(20))

create table Address(
          idAddress number(10) NOT NULL,
          address_name varchar2(20),
          City_FK number(20))


create table OwnerAgent(
           idOwnerAgent number(10) NOT NULL,
           Name varchar2(50)  NOT NULL,
           LastName varchar2(50)  NOT NULL, …
Run Code Online (Sandbox Code Playgroud)

sql database oracle triggers

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

有没有办法绕过Oracle交叉表PIVOT?

我想使用该AVG()函数来转动数据,但我想对结果进行舍入以防止重复显示小数.

当我尝试这样的事情时: PIVOT( ROUND( AVG(column_name), 2) FOR ...)

我收到一个错误: ORA-56902: expect aggregate function inside pivot operation

这是"在课程中注册的学生人数"的一个非常简单的例子:

CREATE TABLE TBL_EXAMPLE
(
  enrolled NUMBER,
  course   VARCHAR2(50 CHAR)
);

INSERT INTO TBL_EXAMPLE (enrolled, course) VALUES (1, 'math');
INSERT INTO TBL_EXAMPLE (enrolled, course) VALUES (2, 'math');
INSERT INTO TBL_EXAMPLE (enrolled, course) VALUES (2, 'math');
INSERT INTO TBL_EXAMPLE (enrolled, course) VALUES (1, 'english');
INSERT INTO TBL_EXAMPLE (enrolled, course) VALUES (4, 'english');

SELECT * 
  FROM TBL_EXAMPLE 
 PIVOT ( AVG(enrolled) FOR course IN ('math', …
Run Code Online (Sandbox Code Playgroud)

sql oracle pivot oracle11g

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

使用(Oracle)SQL对字符串中的分隔分隔值进行排序

说你有

select '9|2|6|7|5' as somedata from dual
Run Code Online (Sandbox Code Playgroud)

有没有办法,我可以做以下事情:

select
    in_string_sort('|', a.somedata)
from
    (select '9|2|6|7|5' as somedata from dual) a
Run Code Online (Sandbox Code Playgroud)

结果会是'2|5|6|7|9'什么?

我知道,我可以使用一个函数来实现它,但这是如此基本我想知道Oracle是否会为这类事情提供一些内置函数.

[编辑]忘记提及:这将在Oracle 10gR2中.

sorting string oracle plsql oracle10g

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

ODP.NET OracleException.ErrorCode 和 OracleException.Number 之间的区别?

要将旧的 VB.NET 应用程序从已弃用的System.Data.OracleClientMicrosoft 提供商转换为 ODP.NET Oracle.ManagedDataAccess.dll(版本 4.122.1.0),我想知道以下内容之间是否有区别:

Oracle.ManagedDataAccess.Client.OracleException.ErrorCode“获取错误的 HRESULT”

Oracle.ManagedDataAccess.Client.OracleException.Number“指定 Oracle 错误号”

旧代码引用了System.OracleClient.OracleException.Code当错误为“ORA-06550”时结果为 6550 的位置(注意:结果不是负数,例如 -6550)

.net vb.net oracle odp.net

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

SQL - for循环重复问题

只是想知道我将如何更改以下SQL,以便插入只发生在唯一的link_row实例上.因此,如果在seletc中拉回完全相同的值,我只想进行循环并第一次插入.

BEGIN   
      FOR LINK_ROW IN ( SELECT LINKTEXT, LINKURL, CORPID FROM LINKS )
      LOOP
          //Do insert here
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时,我在主键违规时会出现错误,因为同一项在循环内插入两次.

提前致谢

sql oracle plsql

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

标签 统计

oracle ×5

sql ×3

plsql ×2

.net ×1

database ×1

odp.net ×1

oracle10g ×1

oracle11g ×1

pivot ×1

sorting ×1

string ×1

triggers ×1

vb.net ×1