目前,我有一个代码优先模型,如下所示:
public class Ticket
{
public int SERIAL_NO { get; set; }
public DateTime SUBMIT_DATE { get; set; }
public string SYNOPSIS { get; set; }
public string DESCRIPTION { get; set; } // This is really an Oracle CLOB in the DB
}
在票证控制器中,当用户单击Submit时,我让它从数据库中选择最大SERIAL_NO,
我正在user_views上运行一个查询。"TEXT“列的数据类型很长。所以,当我在where子句中使用这个列时,我会得到预期的错误。
错误: ORA-00932:不一致的数据类型:预期数变长了
而查询是
SELECT view_name, text
FROM user_views
WHERE lower(text) LIKE '%company%'
如何解决这个问题?
我从这样一个查询开始:
SELECT A.*
FROM TABLE_A A
INNER JOIN TABLE_B B
ON A.YEAR = B.YEAR
WHERE A.ID IN (SELECT ID FROM TABLE_B)
上面的查询给我提供了重复的记录,因此我添加了DISTINCT关键字如下:
SELECT DISTINCT A.*
FROM TABLE_A A
INNER JOIN TABLE_B B
ON A.YEAR = B.YEAR
WHERE A.ID IN (SELECT ID
我试图从归档数据库中获取行,以填充测试环境DB。我需要一个名为"AUDIT_LOG“的特定字段(即CLOB )不能为空null的行。
我尝试了以下简单的select语句,但是我得到了
ORA-00932:不一致的数据类型:预期- got CLOB
我试过的陈述如下:
SELECT * FROM SIEBEL.S_AUDIT_ITEM WHERE AUDIT_LOG = ''
SELECT * FROM SIEBEL.S_AUDIT_ITEM WHERE AUDIT_LOG != NULL
SELECT * FROM SIEBEL.S_AUDIT_ITEM W
我正在使用一个Oracle数据库,它将HTML存储为Long数据类型。我想查询数据库中搜索特定字符串的HTML数据,存储在Long中。
我试过,"select * from TABLE where COLUMN like '%form%'“。这会导致以下Oracle错误,因为Long数据类型不支持"like“。
ORA-00932:不一致的数据类型:预期数量变长
当我尝试在LAG列上使用CLOB函数时,我面临一个问题。
假设我们有一张桌子
create table test (
id number primary key,
not_clob varchar2(255),
this_is_clob clob
);
insert into test values (1, 'test1', to_clob('clob1'));
insert into test values (2, 'test2', to_clob('clob2'));
DECLARE
x CLOB
我有一个使用条件的查询,其中第一个结果是一个数字,第二个是一个字符串。
示例:
Select Decode(Emp_Type,1,salary , 'The Employee has no salary')
from Emp;
它给了我这个错误:
ORA-01722:无效号码
当我用CASE使用另一个语句时:
Select case when Emp_Type = 1 then salary else 'The Employee has no salary' End
from Emp;
它给了我这个错误:
ORA-00932:不一致的数据类型:预期
我有一个Oracle过程,它将接受一个参数中的多个值。该过程的一部分将运行select语句,将参数的结果放在where子句中,并将连接的CLOB放入变量中。我目前正在过程中使用下面的查询,但是当我运行它时,我得到了下面的错误。
If CLOB_ID is not null then
SELECT cast((collect(CLOB_TEXT) )as CLOB )
into v_MessageBody
FROM MESSAGE_CLOB_TABLE
WHERE MESSAGE_ID in CLOB_ID;
End If;
错误: ORA-00932:不一致
在我们的一个表中,我们有一个HUGEBLOB列(列名为DYNAMIC_DATA),它保存了一个HUGEBLOB数据。我需要做的是从这个BLOB中更新文本的某一部分。
我尝试过这个查询:
UPDATE ape1_item_version
SET DYNAMIC_DATA = REPLACE (DYNAMIC_DATA,'Single period','Single period period set1')
WHERE name = 'PRIT ALL POOL for Duration Telephony 10_NA_G_V_H_N_Z2'
但
我有以下PLSQL函数,这些函数在返回大数据时返回以下错误。
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
修改的PLSQL函数
CREATE OR REPLACE FUNCTION FRDUSER.FRD_TELECOP_DYN_REP_SELECT_OPT (p_select IN VARCHAR2)
RETURN CLOB
AS
-- v_temp CLOB;
v_out CLOB;
TYPE RefCurTyp
我试图在regexp_substr函数中使用CLOB变量,如下所示
UPDATE TableName
SET Tab_DATE = SYSDATE
WHERE Tab_ID IN (
select regexp_substr(clob_variable,'[^~]+', 1, level) from dual
connect by regexp_substr(clob_variable, '[^~]+', 1, level) is not null
)
clob_variable是CLOB类型,包含~分隔ids。
在执行update语句时,我得到
我正在为一个业务逻辑创建一个视图,它包含来自多个表的大约25列。其中一个字段'person_description‘大约有10000个字符,我不想截断这些字符。 为了简单起见,我将提供一个小示例(实际查询要大得多)。 create view sample_description as
select person_description, name, employee_id
from employee_table
group by person_description, name, employee_id; 在person_description字段上,我得到了一个错误'O
我是SQL的新手,我正在尝试这样做:
我有一个名为Foo的表,其中有两列:FooId (主键)和BarId (一个不可为空的外键,其中可以有重复值)。
我想编写一个查询,返回在Foo中只出现一次的BarId。我还想编写另一个查询,返回在Foo中出现多次的BarId。
我是这样开始的:
SELECT
BarId,
COUNT(BarId) AS "BarCount"
FROM [Database].[dbo].[Foo]
GROUP BY BarId
它返回每个BarId的出现次数。但是只要我尝试添加一个WHERE子句,我就会得到一个语法错误:
S
我在这个过程中已经有一段时间了,并且使用过INSTR(),直到现在还没有遇到过任何问题。a.review是一个CLOB,而INSTR()在一个简单的SELECT语句中工作。
DECLARE
lv_hotel NUMBER;
seed_cnt NUMBER;
lv_cat NUMBER;
lv_pol NUMBER;
f NUMBER;
BEGIN
FOR f IN 1..4176
LOOP
SELECT a.IDHotel ,DBMS_LOB.INSTR(a.review, b.seed_words), b.CATEGORYID, SUM(b.Polarity)
我是oracle的新手,我的问题很简单,可以将CLOB字段转换为NUMBER类型进行比较。
我试过使用CAST和TO_NUMBER函数,但我没有得到任何工作。
我的尝试:
WHERE TO_NUMBER(clob_field) = 100 -> Error ORA-01722: NOT a valid number
WHERE CAST(clob_field as NUMBER) = 100 -> Error ORA-00932:Inconsistent datatypes
如果这是不可能的,哪种方法是最好的方法?
感谢您的时间和帮助。
长话短说,我想要做的是把一些数据插入到一个表中,而我在理解什么是错误时遇到了一些问题。我会让代码自己说出来。希望你能帮我一把。提前感谢!
CREATE OR REPLACE TYPE Departament IS OBJECT (
deptno NUMBER(2),
dname CHAR(14)
);
/
CREATE OR REPLACE TYPE Employee IS OBJECT (
empno NUMBER(4),
ename CHAR(10),
dept REF Departament,
sal NUMBER(7,2)
) NOT FINAL;
/
在Oracle 19c中,我创建了表:
create table SAMPLE_TABLE (
id NUMBER not null,
display_name NVARCHAR2(4000), )
当我运行脚本时:
declare
i integer;
p_tmp_clob clob;
begin
select JSON_ARRAYAGG(JSON_OBJECT(t.* )) into p_tmp_clob from SAMPLE_TABLE t;
end;
我得到了下面的ORA-40478异常。ORA-40478:输出值过大(最大值: 4000)
我有以下功能:
create or replace
FUNCTION "MXUPGKEYVAL"(tbname varchar2,colname varchar2) return number is
val number;
BEGIN
EXECUTE IMMEDIATE
'select sum(length('||colname||')) from '||tbname into val;
return val;
END;
以及以下更新:
update ANINTEGDATA set val1=to_char(nvl(MXUPGKEYVAL(
我正在运行一个Oracle10gR2数据库,我们导入xml信息,并将其存储在CLOB中。我正在尝试获取短语“nIIN”在CLOB中出现的次数,并除以2。
select count(REGEXP_SUBSTR(rec_data, '[=nIIN=]', 'i'))
from gcssmc_imports_data
where interface_name = 'MATS'
and created_date like to_char(sysdate,'DD-MON-YY');
上面是我放在一起的一个查询,但我遗漏了一些东西。
下面是错