小编mat*_*guy的帖子

约束名称未知时的丢弃检查约束

是否可以删除在CREATE TABLE命令中创建的检查约束(未声明约束名称)?

sql database oracle

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

使用 SQLPlus 时如何设置 Oracle 绑定变量?

使用 SQLPlus 时如何设置 Oracle 绑定变量?

例子:

SELECT orders.order_no FROM orders WHERE orders.order_date BETWEEN :v1 AND :v2
Run Code Online (Sandbox Code Playgroud)

如何设置的日期:v1:v2

oracle sqlplus

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

插入随机字符串,数字.和乘法的结果

这是真的吗 ?

我希望在此表中插入列'valname'字符串,其随机顺序为(USD,EUR,RUB)10000次.

在第二列'ammount'中
插入100-2000的随机数.(10000次)

在3d列中,'should'表示乘法ammount的结果(如果是usd*69)(如果是EUR*72)(如果RUB*1.2)

例如

valname = USD, ammount = 100, converted_ammount = 6900;
valname = EUR, ammount = 100, converted_ammount = 7200;
valname = RUB, ammount = 100,converted_ammount = 120;
Run Code Online (Sandbox Code Playgroud)

按级别连接<= 10000;

    CREATE table t_test01 (    valname varchar2(5),    
ammount number null,    converted_ammount number null --- by multiplication
    * 69,72,1.2    )
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle11g

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

Oracle中修改的ROUND UP功能

我有,我想圆特殊要求以下方式号码-

   1.14 to 1.5
    1.6 to 2
    0.8 to 1
    7.5 to 7.5
Run Code Online (Sandbox Code Playgroud)

也就是说,最接近0.5的倍数.

有没有办法实现这个目标?

最好的祝福

sql oracle oracle10g oracle11g

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

从查询中消除NOT IN

我正在尝试消除NOT IN在查询中使用的需要:

select count(*) 
FROM TABLE1 T1
LEFT OUTER JOIN TABLE2 T2
    ON T1.DATAID = T2.EXISTING_DOCUMENT
        AND T1.ownerid = -2000 
        AND T1.SUBTYPE = 144 
        AND T1.dataid NOT IN (SELECT T3.dataid 
                           FROM   TABLE3 T3
                           WHERE  T3.ID = 123)
Run Code Online (Sandbox Code Playgroud)

原因:我读的NOT IN很慢(+ 500k行)并且不使用索引

我试过了:

select count(*) 
FROM TABLE1 T1 
LEFT OUTER JOIN TABLE2 T2 
ON T1.DATAID = T2.EXISTING_DOCUMENT
        AND T1.ownerid = -2000 
        AND T1.SUBTYPE = 144 
left outer join TABLE3 T3 
 on T3.ancestorid = T1.dataid
    where T3.ID = 123
Run Code Online (Sandbox Code Playgroud)

sql oracle

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

ORA-06550:参数的数量或类型错误

为什么oracle会回来..

ORA-06550:第9行,第3列:PLS-00306:调用'ADD_RULE_RANGE_ATTR'ORA-06550时参数的数量或类型错误:第9行,第3列:PL/SQL:语句被忽略

当我根据程序规范设置所有类型和参数时.

程序规范

PROCEDURE add_rule_range_attr(
    "p_name" IN VARCHAR2,
    "p_entity" IN VARCHAR2,
    "p_attribute" IN VARCHAR2,
    "p_r_negate" IN NUMBER,
    "p_ra_comparer1" IN VARCHAR2,
    "p_ra_comparer2" IN VARCHAR2
);
Run Code Online (Sandbox Code Playgroud)

最初我的代码在Oracle APEX环境中运行,其中过程的参数由输入变量填充(例如:PX_INPUT_NAME),因此我必须确保我在参数中放入的所有变量都是正确的数据类型.但是,在调用过程时,我使用的变量具有与过程参数所请求的数据类型相对应的默认值.

调用程序

brg_manager.add_rule_range_attr(
    p_name => v_name,
    p_entity => v_entity,
    p_attribute => v_attribute,
    p_r_negate => v_negate,
    p_ra_comparer1 => v_comparer1,
    p_ra_comparer2 => v_comparer2
);
Run Code Online (Sandbox Code Playgroud)

看看这个sqlfiddle的工作示例.

oracle plsql stored-procedures oracle-apex

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

如何在Oracle 10g中进行透视

考虑以下

样本输入

SalesBoyName        Product       Amount
------------        -------       ------
Boy1                P1               100
Boy1                P1                40
Boy1                P2               100
Boy2                P1               100
Boy2                P3                12
Run Code Online (Sandbox Code Playgroud)

期望的输出

SalesBoyName     P1     P2     P3
------------   ----   ----   ----
Boy1            140    100   null
Boy2            100   null     12
Run Code Online (Sandbox Code Playgroud)

下面的SQL SERVER 2005查询将完成这项工作

SELECT SalesBoyName, [P1] AS P1, [P2] AS P2,[P3] AS P3
FROM 
(SELECT * FROM tblSales ) s
PIVOT
(
SUM (Amount)
FOR Product IN
( [P1], [P2], [P3])
) AS pvt    
Run Code Online (Sandbox Code Playgroud)

我想在Oracle 10g中执行相同的操作.

这该怎么做?

这可能是微不足道的,但由于我对Oracle很新,所以我正在寻求帮助.

谢谢

oracle pivot oracle10g

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

来自char sql的to_number

我只需要选择只有偶数位数的ID(ID如下:p19,p20等).也就是说,p20是好的(2和0都是偶数); p18不是.

我想用substr从ID中获取每个数字,然后看看它是否均匀.

select from profs 
where to_number(substr(id_prof,2,2))%2=0 and to_number(substr(id_prof,3,2))%2=0;
Run Code Online (Sandbox Code Playgroud)

sql oracle

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

SQL 正则表达式中的插入符号

我正在研究正则表达式,但无法弄清楚这个插入符号究竟做了什么。我认为这个插入符号的意思是“不等于”,但在下面的这个查询中,我很困惑:

SELECT REGEXP_REPLACE('San Antonio', '(^[[:alpha:]]+)', 'CITY') TEST
FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

结果:

城市安东尼奥

'San' 应该符合 [:alpha:] 的要求,所以我不明白 caret 函数在这里做了什么。

regex sql oracle

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

从同一个表中选择不同的计数

我在 Oracle DB 上有表 T_LOCATION_DATA,如下所示:

Person_ID | Location | Role
----------------------------
101         Delhi      Manager
102         Mumbai     Employee
103         Noida      Manager
104         Mumbai     Employee
105         Noida      Employee
106         Delhi      Manager
107         Mumbai     Manager
108         Delhi      Employee
109         Mumbai     Employee
Run Code Online (Sandbox Code Playgroud)

另一个表是 T_STATUS,其中包含以下数据:

Person_ID | Status
-------------------
101         Active
102         Active
103         Inactive
104         Active
105         Active
106         Inactive      
107         Active     
108         Active
109         Inactive
Run Code Online (Sandbox Code Playgroud)

我正在尝试获取活跃的员工和经理的数量;在单个查询中按位置分组,结果如下:

Location  |   MANAGER COUNT |  EMPLOYEE COUNT
Delhi         1                1
Mumbai        1                1
Noida         0                1
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下查询但没有结果: …

oracle

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