oracle中select语句列名可为汉字吗

时间:2022-12-31 07:16:51
insert into B select a,b from A  其中a为汉字列名,总提示非单组分组函数,换成具体值时可行,请高手指点一二.

11 个解决方案

#1


没试过,应该可以.

#2


SQL> select * from tmp
  2  /

NAMES                课程                      分数
-------------------- -------------------- ---------
a                    语文                        62
b                    语文                        70
c                    语文                        80
a                    数学                        90
b                    数学                        95
c                    数学                        75
a                    英语                        85
b                    英语                        92
c                    英语                        95

9 rows selected.

SQL> select * from tmp1
  2  /

no rows selected

SQL> insert into tmp1 select * from tmp
  2  /

9 rows created.

SQL> select * from tmp1
  2  /

NAMES                课程                      分数
-------------------- -------------------- ---------
a                    语文                        62
b                    语文                        70
c                    语文                        80
a                    数学                        90
b                    数学                        95
c                    数学                        75
a                    英语                        85
b                    英语                        92
c                    英语                        95

9 rows selected.

#3


用中文名字的话要加上 " " 。
如:
create table tmp1
(
 names varchar2(20),
 "课程" varchar2(20),
 "分数" number
);

#4


可以用中文的

#5


Oracle不是不支持汉字吗?我看了一篇文章上面说Oracle5.x1以上版本都不支持汉字列名吧?既然列名不支持汉字,那SELECT内用汉字会不会出错啊,就算加上""限定符号,我个人觉得还是不打可靠?文章还指出,可以采用全视图的方式解决这个问题 create view tableName(E1,E2,E3) as select * from tmp1,然后在用insert into B select E1,E2 from tableName我觉得这个方法比较好!
http://www2.ccw.com.cn/1995/21/137645.shtml可以看到这篇文章!

#6


可以用中文的,就像 Eric_1999(╙@^@╜)  说的建表的时候要加双引号""
但查询的时候可以不用加双引号的,
非单分组函数?是不是列的数据不对啊


#7


非单组函数应该就是楼上说的,字段不对应
写入的表字段是多少呀!

#8


可以啊
用中文加双引号就OK了

#9


用中文名字要加上 " " 。

#10


换成具体值时可行,不是字段不对应,可能是字段类型不匹配,可是很多表又不能一个一个改字段

#11


可以,没有问题。。。

#1


没试过,应该可以.

#2


SQL> select * from tmp
  2  /

NAMES                课程                      分数
-------------------- -------------------- ---------
a                    语文                        62
b                    语文                        70
c                    语文                        80
a                    数学                        90
b                    数学                        95
c                    数学                        75
a                    英语                        85
b                    英语                        92
c                    英语                        95

9 rows selected.

SQL> select * from tmp1
  2  /

no rows selected

SQL> insert into tmp1 select * from tmp
  2  /

9 rows created.

SQL> select * from tmp1
  2  /

NAMES                课程                      分数
-------------------- -------------------- ---------
a                    语文                        62
b                    语文                        70
c                    语文                        80
a                    数学                        90
b                    数学                        95
c                    数学                        75
a                    英语                        85
b                    英语                        92
c                    英语                        95

9 rows selected.

#3


用中文名字的话要加上 " " 。
如:
create table tmp1
(
 names varchar2(20),
 "课程" varchar2(20),
 "分数" number
);

#4


可以用中文的

#5


Oracle不是不支持汉字吗?我看了一篇文章上面说Oracle5.x1以上版本都不支持汉字列名吧?既然列名不支持汉字,那SELECT内用汉字会不会出错啊,就算加上""限定符号,我个人觉得还是不打可靠?文章还指出,可以采用全视图的方式解决这个问题 create view tableName(E1,E2,E3) as select * from tmp1,然后在用insert into B select E1,E2 from tableName我觉得这个方法比较好!
http://www2.ccw.com.cn/1995/21/137645.shtml可以看到这篇文章!

#6


可以用中文的,就像 Eric_1999(╙@^@╜)  说的建表的时候要加双引号""
但查询的时候可以不用加双引号的,
非单分组函数?是不是列的数据不对啊


#7


非单组函数应该就是楼上说的,字段不对应
写入的表字段是多少呀!

#8


可以啊
用中文加双引号就OK了

#9


用中文名字要加上 " " 。

#10


换成具体值时可行,不是字段不对应,可能是字段类型不匹配,可是很多表又不能一个一个改字段

#11


可以,没有问题。。。