相关疑难解决方法(0)

为什么即使列存在,我也有ORA-00904?

我在执行hibernate sql查询时看到一个错误.

java.sql.SQLException:ORA-00904:"table_name"."column_name":无效的标识符

当我在sqldeveloper中打开表时,列就存在了.

错误仅发生在PROD中,而不是发生在DEV中.

我该怎么检查?

oracle oracle10g ora-00904

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

SQL错误:ORA-00942表或视图不存在

我使用SQL开发人员,在创建用户并与具有所有所需权限的用户建立另一个连接后,我与系统用户建立了与数据库的连接.

但是当我尝试继续下面时,我得到了SQL错误

ORA-00942表或视图不存在:


INSERT INTO customer (c_id,name,surname) VALUES ('1','Micheal','Jackson')
Run Code Online (Sandbox Code Playgroud)

sql oracle11g

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

schema_version没有select权限?

我执行了flyway:init,测试/测试为用户/密码,得到以下输出:

[INFO] Creating schema "MY_SCHEMA" ...
[INFO] Creating Metadata table: "MY_SCHEMA"."schema_version"
[INFO] Schema initialized with version: 1
Run Code Online (Sandbox Code Playgroud)

然后我使用MY_SCHEMA/flyway作为用户/密码连接到oracle但我无法在schema_version上选择,我得到"ORA-00942:表或视图不存在".用户测试也无法在schema_version上进行选择.

如何查看schema_version表中的内容?

谢谢

oracle flyway

11
推荐指数
1
解决办法
3145
查看次数

验证 Oracle 列名

在一种情况下,我们正在动态地动态创建 sql 到create临时表。table_name 没有问题,因为它是由我们决定的,但是列名是由我们无法控制的来源提供的。

通常我们会使用以下查询检查列名:

select  ..
where NOT REGEXP_LIKE (Column_Name_String,'^([a-zA-Z])[a-zA-Z0-9_]*$') 
OR Column_Name_String is NULL
OR Length(Column_Name_String) > 30
Run Code Online (Sandbox Code Playgroud)

但是,是否有任何内置功能可以进行更广泛的检查。也欢迎对上述查询的任何输入。

提前致谢。


基于以下答案的最终查询:

select  ..
where NOT REGEXP_LIKE (Column_Name_String,'^([a-zA-Z])[a-zA-Z0-9_]{0,29}$') 
OR Column_Name_String is NULL
OR Upper(Column_Name_String) in (select Upper(RESERVED_WORDS.Keyword) from V$RESERVED_WORDS RESERVED_WORDS)
Run Code Online (Sandbox Code Playgroud)

特别不满意列名中像 $ 这样的字符,因此也不会使用..

dbms_assert.simple_sql_name('VALID_NAME')
Run Code Online (Sandbox Code Playgroud)

相反,使用正则表达式,我可以决定允许使用自己的一组字符。

oracle oracle11g

4
推荐指数
2
解决办法
1699
查看次数

sql请求中的标识符无效

我有这个SQL请求:

select T1.ID, T2.ID 
from task t1, task t2
join workcase w on W.ID = T1.WORKCASE_ID
where W.ID = 1683964476
and T1.STATE < 501
and T2.STATE = 501
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我有这个错误:

ORA-00904: "T1"."WORKCASE_ID": invalid identifier
Run Code Online (Sandbox Code Playgroud)

这有什么不对?

sql oracle

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

如何调用plsql程序

我创建了一个程序如下

 create or replace procedure "GETCUSTNAMEZZz"
(cust_identifier1 IN NVARCHAR2(10))
is
begin
DBMS_OUTPUT.PUT_LINE (FNAME || ' ' || LNAME FROM customer WHERE  cust_id=cust_identifier1)
end;
Run Code Online (Sandbox Code Playgroud)

然后我尝试调用该过程

BEGIN

GETCUSTNAMEZZz('C2')  ;  


END;
Run Code Online (Sandbox Code Playgroud)

这个sql给出了一个错误,标识符'GETCUSTNAMEZZZ'必须声明为ORA-06550:第3行,第5列:PL/SQL:语句被忽略"

这是我创建的确切过程,参数是正确的.

我究竟如何申报标识符?

提前致谢.

oracle plsql procedure

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

ORA-00911:截断表时出现无效字符错误

我有一个名为_VERSION_HISTORY的表,我在截断此表时出现了ORA-00911错误.Oracle允许名称以下划线(_)开头,但在截断时会抛出错误.这是一个愚蠢的错误吗?

database oracle

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

用于创建表的无效标识符

create table ROOM

(NO_ROOM INT PRIMARY KEY, TYPE VARCHAR2(8) NOT NULL, SIZE VARCHAR2(8) NOT NULL)

;
Run Code Online (Sandbox Code Playgroud)

我得到ORA-00904,我认为问题来自NO_ROOM.我尝试使用NUMBER,它是一样的.

PS.我为没有房间类型和大小的房间做桌子.

sql database oracle

0
推荐指数
1
解决办法
437
查看次数

SQL - 如何使用一个SQL语句更新两个行表

我有这个Oracle表,用于存储应用程序设置.

在此输入图像描述

这是用于创建表的SQL脚本:

CREATE TABLE "GLOBALSETTINGS"(
  "SettingName" Varchar2(40 ) NOT NULL,
  "SettingValue" Varchar2(40 )
)
/

-- Add keys for table GLOBALSETTINGS

ALTER TABLE "GLOBALSETTINGS" ADD CONSTRAINT "Key14" PRIMARY KEY ("SettingName")
/

ALTER TABLE "GLOBALSETTINGS" ADD CONSTRAINT "SettingName" UNIQUE ("SettingName")
/
Run Code Online (Sandbox Code Playgroud)

这是我想要使用的SQL语句:

UPDATE GLOBALSETTINGS
SET settingValue =
  CASE
    WHEN settingName = 'SessionTTL'
    THEN '30'
    WHEN settingName = 'MaxUsersActive'
    THEN '40'
    ELSE settingValue
  END
WHERE settingName IN ('SessionTTL', 'MaxUsersActive');
Run Code Online (Sandbox Code Playgroud)

但是当我在SQL开发人员中运行它时,我收到以下错误消息:

Error starting at line 1 in command:
UPDATE GLOBALSETTINGS 
   SET settingValue = …
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle10g oracle11g

-2
推荐指数
1
解决办法
1216
查看次数

标签 统计

oracle ×8

sql ×4

oracle11g ×3

database ×2

oracle10g ×2

flyway ×1

ora-00904 ×1

plsql ×1

procedure ×1