首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle11g R2 Express,自动增长(小写)

Oracle11g R2 Express,自动增长(小写)
EN

Stack Overflow用户
提问于 2015-10-09 09:04:13
回答 2查看 82关注 0票数 0

我有问题的自动增量在小写。基于这个Auto Increment for Oracle问题,我可以创建自动增量,但是表仍然是大写字符。

我怎么才能在更低的情况下做到这一点。

下面是我的SQL列表:

代码语言:javascript
复制
CREATE TABLE  "myTable" 
   (    "tableID" NUMBER(*,0) primary key, 
        "tableColumn" VARCHAR2(30) 
   ) ;

CREATE SEQUENCE "tableID_SEQUENCE"
START WITH 1
INCREMENT BY 1;

CREATE OR REPLACE TRIGGER "tableID_TRIGGER"
BEFORE INSERT ON "myTable"
FOR EACH ROW
BEGIN
SELECT tableID_SEQUENCE.nextval INTO NEW.tableID FROM dual; //at this line, what changes needed to?
END;

INSERT INTO "myTable" ("tableColumn") VALUES ('ABC');

因此,目前我陷入了触发器查询:

代码语言:javascript
复制
SELECT tableID_SEQUENCE.nextval INTO NEW.tableID FROM dual; 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-09 09:15:36

编辑:试图更精确地回答问题。

您需要在引号中的“新”变量和引用对象名称前面放置一个冒号(因为您使用了引号):

代码语言:javascript
复制
CREATE OR REPLACE TRIGGER "tableID_TRIGGER"
   BEFORE INSERT
   ON "myTable"
   FOR EACH ROW
BEGIN
   SELECT "tableID_SEQUENCE".NEXTVAL INTO :NEW."tableID" FROM DUAL;
END;
/

你需要引用所有引用的名字-引号!

代码语言:javascript
复制
"tableID" <> tableID
"tableID" <> TABLEID
"tableID" <> tableid
"tableID" = "tableID"
 tableID  =  tableID
 tableID  =  TABLEID
 tableID  =  tableid

因此,除非您确实需要区分大小写,否则不要在对象命名中使用引号。

票数 0
EN

Stack Overflow用户

发布于 2015-10-09 09:07:08

在Oracle数据库中,即使使用双引号,对象也不区分大小写(它们的名称)。根据Oracle文档:

可以使用引号或非引号标识符来命名任何数据库对象。但是,数据库名称、全局数据库名称和数据库链接名称总是不区分大小写,并以大写形式存储。如果将这些名称指定为引号标识符,则将忽略引号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33034162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档