在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) 我是甲骨文的新手,而且我 - 也许是微不足道的 - 选择中的一个问题.(我正在使用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',但我遇到了同样的问题.我做错了哪里?
我正在使用Oracle数据库将HTML存储为Long数据类型.我想查询数据库以搜索存储在Long中的HTML数据中的特定字符串.
我试过,"从表中选择*,其中COLUMN喜欢'%form%'".这会导致以下Oracle错误,因为Long数据类型不支持"like".
ORA-00932:不一致的数据类型:预期NUMBER变长
我想找到可以假设名为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的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) 我在下面的存储过程中执行有问题.当我在下面的存储过程中添加列时,我
收到错误.是一个blob字段.如果我删除这个字段一切正常.我不知道为什么会这样.请帮忙....ORA-00932: inconsistent datatypes: expected - got BLOB
FM.FAXFILE_BLOB
FAXFILE_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) 我已经使用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) 我有一个包含数据类型列的表LONG RAW
.如何确定此列中数据的大小(以字节为单位)?
如果我调用LENGTH
它上面的函数,它就会升起ORA-00932: inconsistent datatypes: expected NUMBER got LONG BINARY
.
万一你认为:UTL_RAW.LENGTH
加注ORA-00997: illegal use of LONG datatype
:)
(是的,我知道LONG RAW
已被弃用 - 由于一些可能需要它的旧软件而出现了问题)
我有一个JPQL查询,可以正常使用MySQL和SQL Server.但是随着Oracle的失败
ORA-00932: inconsistent datatypes: expected - got CLOB
Run Code Online (Sandbox Code Playgroud)
原因似乎是Oracle不支持带CLOB列的ORDER BY.
有没有JPQL解决这个问题?
我有一个名为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"
不能用正则表达式子串组合吗?