有关Oracle中“"”的问题

时间:2021-02-19 17:06:46
select * from Table1
              *
ORA-00942: 表或视图不存在


SQLWKS> select * from "Table1"
     2> 
ID         NAME    
---------- --------
已选择0行。
为什么给表名加了“"”就好了?
请大家指点!谢谢!

17 个解决方案

#1


你去SQLPLUS里面执行不会这样的

#2


我试过了还是一样

#3


是否移值过来吧,要把它改成大写,ORAClE只认大写

#4


没有办法, 只能重新建表

#5



这个表可能不是你通过sqlplus创建的,
或者创建时用了: create table "Table1" as ,此时表名是区分大小写的.
而一般情况下是不区分大小写.

#6


SQL语句里的表名不用加“”吧
select * from dual

表示关注

#7


这是我在移植过来的库里新加的表,当然是移植过来也不行

#8


如果是8i
给你个建议

spool一个文件

查询是 select 'rename '|| tname ||'  to  ' ||upper(tname) ||';'
       from tab where tabtype = 'TABLE';

然后执行这个文件(看看这个文件内容做个简单修改就可以了,如果你知道怎么设置sqlplus显示格式就更方便了)

#9


请把下面内容存成文本文件,假设为 c:\create.txt
set head off;
set echo off;
set term off;
set line 200;
set pages 0;
set feed off;
set verify off;
spool  c:\rename.sql;

select 'rename '|| tname ||'  to  ' ||upper(tname) ||' ;'
       from tab where tabtype = 'TABLE';

spool  off;
@c:\rename.sql;
set heading on;
set term on;
set line 80;
set pages 24;
set feed on;
set echo on;
set verify on;

把这些内存保存成 c:\create.txt
然后在sqlplus中输入
@c:\create.txt;

然后一切都ok了 :)

#10


oracle的数据字典里所有元素都用大写,你在命令行里输入的sql 语句会自动全部转为大写,除非你用""括起来的名称,所以往往从其他数据库里转换来的东东都会不好用,就是这个原因,建设在移植之前先全部转为大写,这样就会比较少麻烦

#11


如果数据量少,建义楼主还是手工建好了,移植还会使数据类型变样.

#12


难道
偶上面费劲写出来的脚本
大家竟然视而不见

那你们都去重建好了~~~~~~

#13


呵呵.

#14


不敢不敢, biti_rainy(biti_rainy) 大哥!

#15


to: biti_rainy(biti_rainy) 
很想用您的方法可我用的是Oracle 8.0.5。

#16


这个问题我已经明白了,jlandzpa(jlandzpa)兄说的对。
在Oracle中如果建表时用了“"”以后要用到这个表时也要用“"”并且要区分大小写,如果建表时没用“"”那Oracle忽略大小写并自动全部改成大写。
谢谢大家的指点。
虽然biti_rainy(biti_rainy)兄说的也对,但就本问题而言还是jlandzpa(jlandzpa)兄说的最正确。我把分给jlandzpa(jlandzpa)兄了。

#17


805也可以rename的.

#1


你去SQLPLUS里面执行不会这样的

#2


我试过了还是一样

#3


是否移值过来吧,要把它改成大写,ORAClE只认大写

#4


没有办法, 只能重新建表

#5



这个表可能不是你通过sqlplus创建的,
或者创建时用了: create table "Table1" as ,此时表名是区分大小写的.
而一般情况下是不区分大小写.

#6


SQL语句里的表名不用加“”吧
select * from dual

表示关注

#7


这是我在移植过来的库里新加的表,当然是移植过来也不行

#8


如果是8i
给你个建议

spool一个文件

查询是 select 'rename '|| tname ||'  to  ' ||upper(tname) ||';'
       from tab where tabtype = 'TABLE';

然后执行这个文件(看看这个文件内容做个简单修改就可以了,如果你知道怎么设置sqlplus显示格式就更方便了)

#9


请把下面内容存成文本文件,假设为 c:\create.txt
set head off;
set echo off;
set term off;
set line 200;
set pages 0;
set feed off;
set verify off;
spool  c:\rename.sql;

select 'rename '|| tname ||'  to  ' ||upper(tname) ||' ;'
       from tab where tabtype = 'TABLE';

spool  off;
@c:\rename.sql;
set heading on;
set term on;
set line 80;
set pages 24;
set feed on;
set echo on;
set verify on;

把这些内存保存成 c:\create.txt
然后在sqlplus中输入
@c:\create.txt;

然后一切都ok了 :)

#10


oracle的数据字典里所有元素都用大写,你在命令行里输入的sql 语句会自动全部转为大写,除非你用""括起来的名称,所以往往从其他数据库里转换来的东东都会不好用,就是这个原因,建设在移植之前先全部转为大写,这样就会比较少麻烦

#11


如果数据量少,建义楼主还是手工建好了,移植还会使数据类型变样.

#12


难道
偶上面费劲写出来的脚本
大家竟然视而不见

那你们都去重建好了~~~~~~

#13


呵呵.

#14


不敢不敢, biti_rainy(biti_rainy) 大哥!

#15


to: biti_rainy(biti_rainy) 
很想用您的方法可我用的是Oracle 8.0.5。

#16


这个问题我已经明白了,jlandzpa(jlandzpa)兄说的对。
在Oracle中如果建表时用了“"”以后要用到这个表时也要用“"”并且要区分大小写,如果建表时没用“"”那Oracle忽略大小写并自动全部改成大写。
谢谢大家的指点。
虽然biti_rainy(biti_rainy)兄说的也对,但就本问题而言还是jlandzpa(jlandzpa)兄说的最正确。我把分给jlandzpa(jlandzpa)兄了。

#17


805也可以rename的.