标签: ora-00932

如何平均时间间隔?

在Oracle 10g中,我有一个表,其中包含时间戳,显示某些操作需要多长时间.它有两个时间戳字段:starttime和endtime.我想找到这些时间戳给出的持续时间的平均值.我尝试:

select avg(endtime-starttime) from timings;
Run Code Online (Sandbox Code Playgroud)

但得到:

SQL错误:ORA-00932:不一致的数据类型:预期NUMBER获得INTERVAL DAY TO SECOND

这有效:

select
     avg(extract( second from  endtime - starttime) +
        extract ( minute from  endtime - starttime) * 60 +
        extract ( hour   from  endtime - starttime) * 3600) from timings;
Run Code Online (Sandbox Code Playgroud)

但是真的很慢.

有没有更好的方法将间隔转换为秒数,或者其他方式做到这一点?

编辑:真正放慢这一点的是我在开始时间之前有一些终结时间.由于某些原因,这个计算非常缓慢.我的基本问题是通过从查询集中删除它们来解决的.我还定义了一个函数来更容易地进行这种转换:

FUNCTION fn_interval_to_sec ( i IN INTERVAL DAY TO SECOND )
RETURN NUMBER
IS
  numSecs NUMBER;
BEGIN
  numSecs := ((extract(day from i) * 24
         + extract(hour from i) )*60
         + extract(minute from i) )*60
         + extract(second from …
Run Code Online (Sandbox Code Playgroud)

sql oracle timestamp ora-00932

15
推荐指数
4
解决办法
4万
查看次数

Oracle 10g:从XML中提取数据(select)(CLOB类型)

我是甲骨文的新手,而且我 - 也许是微不足道的 - 选择中的一个问题.(我正在使用Oracle 10g Express Edition).

我有一个带字段CLOB的数据库:mytab.xml这个列有一个像这样的XML:

<?xml version="1.0" encoding="iso-8859-1"?>
<info>
<id> 954 </id>
<idboss> 954 </idboss>
<name> Fausto </name>
<sorname> Anonimo </sorname>
<phone> 040000000 </phone>
<fax> 040000001 </fax>
</info>
Run Code Online (Sandbox Code Playgroud)

我正在尝试进行"简单"选择,例如,获取'fax'标签的值.但我有点问题,我无法理解我的错误.例如:

select extract(xml, '//fax').getStringVal() from mytab;
ORA-00932: inconsistent datatypes: expected - got

select extract(xmltype(xml), '//fax').getStringVal() from mytab;
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.XMLTYPE", line 254
Run Code Online (Sandbox Code Playgroud)

我也试过'extractvalue',但我遇到了同样的问题.我做错了哪里?

xml oracle oracle10g ora-00932

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

在Oracle数据库中搜索Long数据类型的最佳方法是什么?

我正在使用Oracle数据库将HTML存储为Long数据类型.我想查询数据库以搜索存储在Long中的HTML数据中的特定字符串.

我试过,"从表中选择*,其中COLUMN喜欢'%form%'".这会导致以下Oracle错误,因为Long数据类型不支持"like".

ORA-00932:不一致的数据类型:预期NUMBER变长

sql oracle ora-00932 sql-like

12
推荐指数
4
解决办法
9万
查看次数

从TABLE中选择DISTINCT CLOB_COLUMN;

我想找到可以假设名为COPIA的表中包含的名为CLOB_COLUMN(类型为CLOB)的列的不同CLOB值.

我选择了一个PROCEDURAL方法来解决这个问题,但我更愿意给出一个简单的SELECT,如下所示:SELECT DISTINCT CLOB_COLUMN FROM TABLE避免错误"ORA-00932:不一致的数据类型:预期 - 得到了CLOB"

我怎样才能做到这一点?

提前谢谢您的友好合作.这是我想到的程序方式:

-- Find the distinct CLOB values that can assume the column called CLOB_COLUMN (of type CLOB)
-- contained in the table called COPIA
-- Before the execution of the following PL/SQL script, the CLOB values (including duplicates) 
-- are contained in the source table, called S1
-- At the end of the excecution of the PL/SQL script, the distinct values of the column called CLOB_COLUMN
-- can be find in …
Run Code Online (Sandbox Code Playgroud)

oracle plsql ora-00932

12
推荐指数
4
解决办法
3万
查看次数

过滤all_views上的"文本"列

有什么办法可以过滤oracle的all_views表上的文本列吗?

例如:

SELECT * 
  FROM ALL_VIEWS 
  WHERE UPPER(TEXT) LIKE '%FOO%';
Run Code Online (Sandbox Code Playgroud)

例外:

ORA-00932: inconsistent datatypes: expected NUMBER got LONG
00932. 00000 -  "inconsistent datatypes: expected %s got %s"
Run Code Online (Sandbox Code Playgroud)

编辑:

DESC ALL_VIEWS
Name             Null     Type           
---------------- -------- -------------- 
OWNER            NOT NULL VARCHAR2(30)   
VIEW_NAME        NOT NULL VARCHAR2(30)   
TEXT_LENGTH               NUMBER         
TEXT                      LONG()         
TYPE_TEXT_LENGTH          NUMBER         
TYPE_TEXT                 VARCHAR2(4000) 
OID_TEXT_LENGTH           NUMBER         
OID_TEXT                  VARCHAR2(4000) 
VIEW_TYPE_OWNER           VARCHAR2(30)   
VIEW_TYPE                 VARCHAR2(30)   
SUPERVIEW_NAME            VARCHAR2(30)   
Run Code Online (Sandbox Code Playgroud)

sql oracle views oracle9i ora-00932

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

连接语句中出现错误"ORA-00932:不一致的数据类型:预期 - 得到了BLOB"

我在下面的存储过程中执行有问题.当我在下面的存储过程中添加列时,我
收到错误.是一个blob字段.如果我删除这个字段一切正常.我不知道为什么会这样.请帮忙....ORA-00932: inconsistent datatypes: expected - got BLOBFM.FAXFILE_BLOBFAXFILE_BLOB




        CREATE OR REPLACE Procedure HCADMIN.Proc_GetFaxDetailsByDate
         ( 
           FromDate varchar2 default null,
           ToDate varchar2 default null,
           FaxNo varchar2 default null,
           ClaimNo varchar2 default null,
            NspCode varchar2 default null,
           PolicyNo varchar2 default null,
           HEGICNo varchar2 default null,
           cur_faxdetails OUT SYS_REFCURSOR
           )
        IS
       BEGIN
      OPEN cur_faxdetails For

      Select distinct
       FM.RECORDNO_NUM,
       FM.CLAIMNO_VAR,
       FM.FAXNO_VAR,
       FM.FAXSTATUS_VAR,
       FM.FAXTYPE_VAR,
       FM.USERNAME_VAR,
       FM.HEGIC_NO_VAR, 
       FM.RESEND_NO_NUM,
       FM.RESNDCOUNT_NUM,
       TO_date(FM.TIMESTAMP_DTE,'dd/MM/yyyy') as "TIMESTAMP_DTE",
       FR.RECIPIENTFAXNO_VAR,
       FM.FAXFILE_BLOB

       From TPA_FAXMASTER FM Left  join TPA_FAXRECIPIENT FR on                                      FM.RECORDNO_NUM=FR.RECORDNO_NUM 
 WHERE …
Run Code Online (Sandbox Code Playgroud)

sql database oracle join ora-00932

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

ORA-00932:不一致的数据类型:预期 - 得到 -

我已经使用Oracle(10g.2)作为PHP程序员将近3年了,但是当我完成一项任务时,我第一次尝试使用ref游标和集合类型.当我遇到问题时,我在网上搜索过,这个ora-00932错误让我感到不知所措.我需要老手的帮助.

这是我一直在处理的问题,我想从表中选择行并将它们放在ref游标中,然后使用记录类型将它们收集在一个关联数组中.再次从这个关联数组中,创建一个引用游标.不要问我为什么,我正在写这么复杂的代码,因为我需要它来进行更复杂的分配.我可能会让你感到困惑,所以让我告诉你我的代码.

我在Toad的类型选项卡下定义了2种类型.其中一个是对象类型:

CREATE OR REPLACE
TYPE R_TYPE AS OBJECT(sqn number,firstname VARCHAR2(30), lastname VARCHAR2(30));
Run Code Online (Sandbox Code Playgroud)

另一个是使用上面创建的对象类型的集合类型:

CREATE OR REPLACE
TYPE tr_type AS TABLE OF r_type;
Run Code Online (Sandbox Code Playgroud)

然后我创建一个包:

CREATE OR REPLACE PACKAGE MYPACK_PKG IS
TYPE MY_REF_CURSOR IS REF CURSOR;
PROCEDURE MY_PROC(r_cursor OUT MY_REF_CURSOR);
END MYPACK_PKG;
Run Code Online (Sandbox Code Playgroud)

包装体:

CREATE OR REPLACE PACKAGE BODY MYPACK_PKG AS
 PROCEDURE MY_PROC(r_cursor OUT MY_REF_CURSOR) AS
  rcur MYPACK_PKG.MY_REF_CURSOR;
  sql_stmt VARCHAR2(1000);
  l_rarray   tr_type := tr_type();
                l_rec r_type;

 BEGIN
     sql_stmt :=  'SELECT 1,e.first_name,e.last_name  FROM hr.employees e ';
     OPEN rcur FOR sql_stmt;
     LOOP
       fetch …
Run Code Online (Sandbox Code Playgroud)

oracle toad plsql ora-00932 database-cursor

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

获得长期的优势

我有一个包含数据类型列的表LONG RAW.如何确定此列中数据的大小(以字节为单位)?

如果我调用LENGTH它上面的函数,它就会升起ORA-00932: inconsistent datatypes: expected NUMBER got LONG BINARY.

万一你认为:UTL_RAW.LENGTH加注ORA-00997: illegal use of LONG datatype:)

(是的,我知道LONG RAW已被弃用 - 由于一些可能需要它的旧软件而出现了问题)

oracle ora-00932 ora-00997

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

Oracle CLOB和JPA/Hibernate ORDER BY?

我有一个JPQL查询,可以正常使用MySQL和SQL Server.但是随着Oracle的失败

ORA-00932: inconsistent datatypes: expected - got CLOB
Run Code Online (Sandbox Code Playgroud)

原因似乎是Oracle不支持带CLOB列的ORDER BY.

有没有JPQL解决这个问题?

oracle hibernate jpa jpql ora-00932

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

我可以通过查询给出regexp_substr来创建一个选择组吗?

我有一个名为data_column的列,它有一些像"123123,12,123123"的值.我想计算按第二个分组的行.

但是当我跑的时候

select count(*) from table group by regexp_substr(data_column,'[^,]+',1,2);
Run Code Online (Sandbox Code Playgroud)

它给

ORA-00932:incostintent数据类型:预期: - 得到:CLOB 00932. 00000 - "不一致的数据类型:预期%s得到%s"

不能用正则表达式子串组合吗?

regex sql oracle ora-00932

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