Chinaunix

标题: ORA-01788 CONNECT BY 错误,字段名包括双引号问题"" [打印本页]

作者: hmilymb    时间: 2007-01-10 21:55
标题: ORA-01788 CONNECT BY 错误,字段名包括双引号问题""
字段名包括双引号: "level",如何select出来这个字段名字.

程序或者sqlplus下执行:

  1. SELECT level,subcount FROM sv_sms_sndreqstat

复制代码

都报错:ORA-01788 CONNECT BY clause required in this query block .

键表语句如下

  1. DROP TABLE SV_SMS_SNDREQSTAT CASCADE CONSTRAINTS;
  2. /*==============================================================*/
  3. /* Table: SV_SMS_SNDREQSTAT                                     */
  4. /*==============================================================*/
  5. CREATE TABLE SV_SMS_SNDREQSTAT  (
  6.    REGION               VARCHAR2(5)                     NOT NULL,
  7.    TRANSDATE            VARCHAR2(8)                     NOT NULL,
  8.    "LEVEL"                NUMBER(3)                       NOT NULL,
  9.    SUBCOUNT             NUMBER(20),
  10.    CONSTRAINT PK_SV_SMS_SNDREQSTAT PRIMARY KEY (REGION, TRANSDATE, LEVEL1)
  11. );

复制代码

兄弟门情帮帮忙,如何写语句:
我试过 SELECT \'level\',subcount FROM sv_sms_sndreqstat
SELECT \"level\",subcount FROM sv_sms_sndreqstat
都不行

[ 本帖最后由 hmilymb 于 2007-1-11 09:08 编辑 ]
作者: hmilymb    时间: 2007-01-11 09:09
问题未解决,继续等待
作者: xieyizhi    时间: 2007-01-11 09:36
试试
select LEVEL  .......
作者: doni    时间: 2007-01-11 10:56
select """level""" ...
作者: xieyizhi    时间: 2007-01-11 11:11
select "LEVEL"...
可以!
作者: xieyizhi    时间: 2007-01-11 11:11
select "LEVEL"...
可以!
作者: doni    时间: 2007-01-11 11:32
level为保留关键字,所以不能直接用,所以用双引号,实际上字段名是不带双引号的.
因此不管是create table 或select中,"LEVEL"即可,说明LEVEL是一个字段名,而不是保留字

我原以为LZ的意思是字段名中含有双引号,所以要用"""LEVEL""",有兴趣的朋友可以一试
作者: hmilymb    时间: 2007-01-11 14:13
首先谢谢doni,xieyizhi的帮助,
但是我这边无论是程序还是sqlpuls都不可以select level,也不可以select "LEVEL"...

我的环境是:10g
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2