小编Nic*_*nov的帖子

如何在oracle sql developer中运行存储过程?

我正在尝试运行此存储过程

DECLARE
  P_TICKER_SERIAL VARCHAR2(200);
  P_SECTOR_CODE   VARCHAR2(200);
  P_SOURCE_ID     VARCHAR2(200);
  P_COUNTRY_CODE  VARCHAR2(200);
  P_FILTER_TYPE   NUMBER;
  CUR_OUT         SYS_REFCURSOR;
  dbUserTable     DBUSER%ROWTYPE;
BEGIN
  P_TICKER_SERIAL :='14232';
  P_SECTOR_CODE   := '15';
  P_SOURCE_ID     := 'TDWL';
  P_COUNTRY_CODE  := 'SA';
  P_FILTER_TYPE   := 1;

  PKG_name.GET_user(
    P_TICKER_SERIAL => P_TICKER_SERIAL,
    P_SECTOR_CODE   => P_SECTOR_CODE,
    P_SOURCE_ID     => P_SOURCE_ID,
    P_COUNTRY_CODE  => P_COUNTRY_CODE,
    P_FILTER_TYPE   => P_FILTER_TYPE,
    CUR_OUT         => CUR_OUT
  );
  open CUR_OUT;
  LOOP
    FETCH CUR_OUT INTO dbUserTable;
    dbms_output.put_line(dbUserTable.email);
  END LOOP;
  CLOSE CUR_OUT;
END;
 /
Run Code Online (Sandbox Code Playgroud)

但它给了我这个错误

Error report:
ORA-06550: line 8, column 15:
PLS-00201: identifier 'DBUSER' must be declared
ORA-06550: …
Run Code Online (Sandbox Code Playgroud)

oracle stored-procedures

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

从间隔数据类型中提取总秒数

减去timestamps返回值时是interval数据类型.是否有一种优雅的方法可以将此值转换为间隔中的(毫秒/微秒)总数,即整数.

以下可行,但它不是很漂亮:

select abs( extract( second from interval_difference ) 
          + extract( minute from interval_difference ) * 60 
          + extract( hour from interval_difference ) * 60 * 60 
          + extract( day from interval_difference ) * 60 * 60 * 24
            )
  from ( select systimestamp - (systimestamp - 1) as interval_difference
           from dual )
Run Code Online (Sandbox Code Playgroud)

SQL或PL/SQL中是否有更优雅的方法?

sql oracle plsql

30
推荐指数
3
解决办法
5万
查看次数

需要使用sql developer在oracle db上按日期计算记录和组计数

我有一张如下表

   ID                created    sent    type
-----------------------------------------------------
0001463583000051783  31-JUL-12  1   270
0081289563000051788  01-AUG-12  1   270
0081289563000051792  01-AUG-12  1   270
0081289563000051791  01-AUG-12  1   270
0081289563000051806  01-AUG-12  1   270
0001421999000051824  06-AUG-12  1   270
0001421999000051826  06-AUG-12  1   270
0001464485000051828  06-AUG-12  1   270
0082162128000051862  09-AUG-12  2   278
0082162128000051861  09-AUG-12  2   278
0022409222082910259  09-AUG-12  3   278
Run Code Online (Sandbox Code Playgroud)

我想要输出以下内容

created     Count
---------------------
31-JUL-12   1
01-AUG-12   4
06-AUG-12   3
09-AUG-12   3
Run Code Online (Sandbox Code Playgroud)

在Oracle 10g上使用SQL Developer实现这一目标有多难

我已经尝试了几个查询来生成这样一个表,最后它没有按日期对计数进行分组,当我们每天平均5000-10000个事务时,只给我一个'1'计数.我可能过于复杂了.但我想要一些简单的事情,我可以在日期范围内每天提取交易量.

当我运行查询时,目前发生的事情是

created     Count
---------------------
31-JUL-12   1
01-AUG-12   1
01-AUG-12   1
01-AUG-12   1
01-AUG-12   1 …
Run Code Online (Sandbox Code Playgroud)

oracle group-by count oracle10g oracle-sqldeveloper

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

我们可以在SQL Transaction中多次使用'GO'吗?

我们可以GO多次使用语句SQL Transaction.我有一个很长的T-SQL脚本,我想在一个SQL Transaction.如果一切顺利,那么我将提交否则将回滚.

但是,在运行该查询时,我得到了错误'create function must be the only statement in the batch'.因为我在创建和删除许多功能和程序.

我没有GO在脚本中的任何地方使用过.我的问题是 - 我可以GO在那个长脚本中使用多次语句.因为,GO创建批处理并且如果第一次成功执行批处理但下次失败则会rollback transaction声明能够实际回滚已经执行的吗?

我的脚本结构如下:

PRINT 'Transaction Started'
BEGIN TRY
    BEGIN TRAN

    Drop Function 
    ....
    ....
    Create Function
    ....
    ....
    Drop Procedure
    ....
    ....
    Lots of statements
    ....
    ....

    COMMIT TRAN
    PRINT 'Transaction Succeeded'
END TRY
BEGIN CATCH
    PRINT 'Transaction Failed'
    IF(@@TRANCOUNT > 0)
        ROLLBACK TRAN
END CATCH
Run Code Online (Sandbox Code Playgroud)

我正在创建此脚本,以便在单个脚本中将一些更改从newDB迁移到oldDB.

sql t-sql sql-server

17
推荐指数
2
解决办法
9282
查看次数

Sql按多列排序

我有以下结果

VendorName | IncidentID | IncidentStatus | IncidentDate
-------------------------------------------------------
XYZ        | 100        |     Open       | 02-JUN-2011    
XYZ        | 101        |     Open       | 03-JUN-2011  
ABC        | 102        |     Open       | 01-JUN-2011  
XYZ        | 103        |     Open       | 01-APR-2011  
ABC        | 105        |     Open       | 05-JUN-2011 
Run Code Online (Sandbox Code Playgroud)

我想订购VendorName最新的事件.供应商ABC有最新的事件,因此它应该首先与同一供应商的所有其他事件,然后下一个供应商与所有相应的事件降序.期望的结果是这样的 -

VendorName | IncidentID | IncidentStatus | IncidentDate  
-------------------------------------------------------
ABC        | 105        |     Open       | 05-JUN-2011 
ABC        | 102        |     Open       | 01-JUN-2011
XYZ        | 101        |     Open       | 03-JUN-2011 
XYZ …
Run Code Online (Sandbox Code Playgroud)

sql oracle sql-order-by

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

如何在Oracle中将日期截断为秒

这一页提到如何将时间戳截断为分钟/小时/等.在Oracle中

你会如何以同样的方式将时间戳截断为秒?

oracle

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

如何查看oracle数据库中表的列的所有元数据?

我想知道Query,它允许我们查看为oracle数据库中的表定义的所有列.

阐述:

表名:Some_Table有10列.

我想知道如何检索所有列名称,它们的数据类型以及为任何列定义的任何约束.

sql database oracle metadata oracle11g

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

Oracle将时区的TIMESTAMP转换为DATE

我有时区的DB,+04:00 (Europe/Moscow)需要在Oracle 11g中将字符串格式转换YYYY-MM-DD"T"HH24:MI:SSTZH:TZMDATE数据类型.

换句话说,我有一个字符串2013-11-08T10:11:31+02:00,我想将其转换为DATE数据类型(在本地数据库时区+04:00 (Europe/Moscow)).

对于字符串,2013-11-08T10:11:31+02:00我想要的转换应该返回DATE带有日期的数据类型2013-11-08 12:11:31(即使用时间的本地时区转换+04:00 (Europe/Moscow)).字符串的时区可能不同,+02:00上面的字符串只是示例.

我试图用TIMESTAMP数据类型做这个,但是时区转换没有成功.

sql oracle timestamp date

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

ORA-00917:缺少逗号错误

以下是我在ORACLE中查询的ORA-00917: missing comma错误.

INSERT INTO user_account_statement(
   statement_id,
   session_key,
   login_id,
   user_id,
   account_number,
   from_date,
   to_date,
   ipaddress,
   create_date_time
) 
VALUES(1070,
      'fe79e0345986b5a439c26f731234868b53f877366f529',
      '2335',
      '204254',
      '108142',
       to_date('2014-08-18','yyyy-mm-dd'),
       to_date('2014-08-23','yyyy-mm-dd'),
       '106.79.126.249',
       to_date('2014-08-23 16:45:06','yyyy-mm-dd hh24:mi:ss');
Run Code Online (Sandbox Code Playgroud)

我现在不知道它在哪里需要逗号.

oracle insert

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

将行值显示为列标题

我有一个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
查看次数