小编Nic*_*nov的帖子

将行值显示为列标题

我有一个select声明

SELECT * 
  FROM TABLENAME 
 WHERE WORKERNAME = 'A'
   AND DATE = '12/17/2014'
Run Code Online (Sandbox Code Playgroud)

输出将是:

FREE | USED | DATE      | WORKERNAME
------------------------------------
  1  |  0   |12/17/2014 | A
  1  |  0   |12/17/2014 | A      
  1  |  0   |12/17/2014 | A     
Run Code Online (Sandbox Code Playgroud)

我需要有一个输出,其中输出DATEWORKERNAME将是列标题,如下所示:

    A
----------
12/17/2014
----------
FREE | USED
----------
1    | 0
1    | 0
1    | 0
Run Code Online (Sandbox Code Playgroud)

有人可以建议如何使用oracle SQL或PL/SQL实现这一目标吗?

sql oracle plsql oracle10g

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

没有group by的Oracle结果

我在Oracle Exadata上运行以下查询.

Oracle Database 11g企业版11.2.0.4.0版 - 64位生产,具有分区,Real Application Clusters,自动存储管理,OLAP,数据挖掘和Real Application Testing选项

select sum (t.sum_edw_trx_cnt) 
  from ( 
         select max(x.edw_trx_cnt)sum_edw_trx_cnt, 
                x.prctr_cell_nbr
           from p_prctr_smpl_pf_sp3 x
          where  mdld_prctr_flg = 'Y'
       )t;
Run Code Online (Sandbox Code Playgroud)

我期待oracle返回错误 - 因为你可以看到group by内部查询"t"中没有子句,我期待这个查询失败.

有数百万条记录,每个prctr_cell_nbr我想要最大计数,然后外部查询应该总结每个的最大计数prctr_cell.这是一个简单的查询.但是,查询运行并112从内部查询返回其输出为最大计数.

我对此行为感到困惑,因为这不是查询返回的正确结果.我不认为这是一种已知行为,最近有人见过这个吗?

谢谢

sql oracle oracle11g

9
推荐指数
2
解决办法
726
查看次数

连接和位置索引

给出下一个 SQL 语句:

Select * 
  from A join B
           on A.id1=B.id1 and 
              A.id2=B.id2
 where A.year=2016
   and B.year=2016
Run Code Online (Sandbox Code Playgroud)

并且知道 tableA比 table 小得多B,所以我需要数据库首先按A年份访问表,然后加入,然后按B年份过滤表,我的问题是:

为提高性能而创建索引是否有意义B(id1,id2,year)

非常感谢!

sql sqlperformance oracle11g

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

PL/SQL:错误"PLS-00306:调用的参数的数量或类型错误"触发了数字表

我正在尝试使用精确的过程签名来调用API,但不知何故,我认为不能正确识别的数字表.

API定义:

TYPE NUMLIST IS TABLE OF NUMBER INDEX BY VARCHAR2(50);

PROCEDURE GETSERVICES_API
(
   I_DIMOBJID IN NUMBER, I_OBJECTID IN NUMBER, I_FILTER IN NUMBER, 
   O_ERRORCODE OUT NUMBER, O_ERRORTEXT OUT VARCHAR2, O_SERVICELIST OUT NUMLIST
);
Run Code Online (Sandbox Code Playgroud)

我对API的要求:

DECLARE

   TYPE NUMLIST IS TABLE OF NUMBER INDEX BY VARCHAR2(50);
   lt_SERVICELIST              NUMLIST;

   ls_errortext             varchar2(100);
   ln_errorcode             number;

BEGIN


    PKGCOMSUPPORT_SERVICE.GETSERVICES_API(I_DIMOBJID => 6,
                                          I_OBJECTID => 5263,
                                          I_FILTER => 3,
                                          O_ERRORCODE => ln_errorcode,
                                          O_ERRORTEXT => ls_errortext,
                                          O_SERVICELIST => lt_SERVICELIST);

END;
Run Code Online (Sandbox Code Playgroud)

当我运行我的API调用时,我得到:PLS-00306:调用'GETSERVICE_API时参数类型的数量错误

知道为什么吗?谢谢

oracle plsql

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

如何替换 或使用XMLELEMENT Oracle时的任何特殊字符

我有以下查询.如何保持撇号(')完整,而不是让它被替换为&apos 还有其他字符我也想处理&

SELECT RTRIM(xmlagg(XMLELEMENT(E,'I''m'||':')).extract('//text()'),':')
  FROM dual;
Run Code Online (Sandbox Code Playgroud)

输出:

I'm
Run Code Online (Sandbox Code Playgroud)

谢谢.

sql database oracle plsql

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

将to_char(myDate,'DAY')的结果与字符串进行比较时出现问题

我一直试图找到问题所在,但我只是运气不好,根本不理解这个问题.我有以下代码:

CREATE OR REPLACE FUNCTION ckeckDay(dateC in date)
RETURN VARCHAR
IS
  day VARCHAR(15);
  checkFriday VARCHAR(1);
BEGIN
  checkFriday := 'N';
  day := to_char(dateC, 'DAY');
  IF day = 'FRIDAY' THEN
    checkFriday := 'Y';
  END IF;
  RETURN day;
END;
/
Run Code Online (Sandbox Code Playgroud)

dateC被设置为周五(甚至通过返回测试它day的替代day变量,它返回周五).然而,IF声明从不计算真实的,即使day变量确实Friday.Any想法如何去解决这个issue.Thanks

sql oracle plsql oracle11g

7
推荐指数
2
解决办法
595
查看次数

如何在.NET Entity Framework中获取Oracle下一个序列值?

我有一个web api post方法,在我的Oracle数据库中的表中插入一个新行.我遇到了表的主键,这是一个序列值.我如何my_primary_key_seq.nextval在Entity Framework中做?目前此代码有效,但当通过旧的.net webform插入新行时,它将违反PK唯一约束,该webform使用序列下一个值作为下一个主键.

decimal nextPK = context.FORMPPs.OrderByDescending(p => p.PPID).FirstOrDefault().PPID + 1;
item.PPID = nextPK;
context.FORMPPs.Add(item);
int result = context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

.net entity-framework sequence oracle11g nextval

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

XML Oracle:多子节点提取

我有一个xml代码:

<begin>
    <entry>
        <lastname>gordon</lastname>
        <NumberList>
            <number>100</number>
            <codelist>
                 <code>213</code>
                 <code>214</code>
            <codelist>
            <login>
                 <user>user1</user>
                 <user>user2</user>
            </login>
        <NumberList>
        <address>
            <addresslist>Jl. jalan pelan-pelan ke Bekasi, Indonesia</addresslist>
        </address>
    </entry>
    <entry>
        <lastname>mark</lastname>
        <address>
            <addresslist>Jl. jalan cepet-cepet ke Jakarta, Indonesia</addresslist>
        </address>
    </entry>
</begin>
Run Code Online (Sandbox Code Playgroud)

我的代码:

FOR r IN (SELECT VALUE(p) col_val,
                 EXTRACT(VALUE(P), '/entry/codelist') AS code,
                 EXTRACT(VALUE(P), '/entry/login') AS login
           FROM TABLE(XMLSequence(Extract(x,'/begin/entry'))) p)
LOOP
   IF r.col_val.existsnode('/entry/lastname/text()') > 0 
   THEN
      vc_lastname := r.col_val.extract('/sdnEntry/lastname/text()').getstringval();
   END IF;

   IF r.col_val.existsnode('/entry/address/addresslist/text()') > 0 
   THEN
    vc_address := r.col_val.extract('/sdnEntry/address/addresslist/text()').getstringval();
   END IF;

   IF r.col_val.existsnode('/entry/codelist/id/code/text()') > 0 AND …
Run Code Online (Sandbox Code Playgroud)

xml sql oracle plsql

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

Sql函数 - NANVL - 不同的行为

查询1:

SQL> select nanvl(to_char(2),0) a from dual;

     A
    ---
     2
Run Code Online (Sandbox Code Playgroud)

QUERY2:

SQL> select nanvl(to_char(2),null) a from dual;

     A
   -----
Run Code Online (Sandbox Code Playgroud)

怀疑: 为什么第一个查询返回2?我0在查询2中期待.我很困惑.请解释让我理解.

sql oracle

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

查找错误ORA-00932:不一致的数据类型:预期DATE得到NUMBER

当我尝试运行此查询时,我得到上述错误.有人可以帮我这个

UPDATE CCO.ORDER_CREATION 
   SET "Doc_Date" = 8/9/2013 
 WHERE "Document_Number" IN (3032310739,3032310740,3032310738)
Run Code Online (Sandbox Code Playgroud)

sql oracle

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