TAdoQuery执行oracle创建表脚本问题
原来数据库表都在sql2000上,使用adoquery经过处理的脚本执行通过。现在项目要求转移到oracle上,以前没接触过。经过几天的摸索,终于将数据库表的结构脚本搞出来了,是在sql developer上通过的。现在要在tadoquery中执行,结果就不行了,搞不定,脚本里有创建表结构的,还有创建索引、主键、外键的,还有序列和触发器。。。脚本如下(部分)。还有一个棘手的问题:原来sql中表数据是不区分大小写的,如设置了主键,就只能插入‘A’,‘a’插入就会报错!但是oracle却都能插入,请问如何设置表可以实现插入大小写不敏感的数据?
脚本如下:驱动用的是OraOLEDB.Oracle,
CREATE TABLE UA_ADMIN (
USERID VARCHAR (100) NOT NULL ,
PASSWORD VARCHAR (100) NOT NULL
)
;
/
CREATE TABLE UA_AUTHLOG (
ID NUMBER(19,0) NOT NULL ,
USERID VARCHAR (100) NOT NULL ,
FUNCID VARCHAR (100) NOT NULL ,
MSG VARCHAR (500) NULL ,
LOGTIME VARCHAR (20) NOT NULL
)
;
/
CREATE TABLE UA_BACKUPSERVER (
IP VARCHAR (20) NOT NULL ,
PORT VARCHAR (10) NOT NULL ,
STATUS VARCHAR (5) NOT NULL ,
ISVALID INT NOT NULL
)
;
/
DECLARE
V_SQL VARCHAR2(2000);
BEGIN
V_SQL:=' CREATE OR REPLACE TRIGGER TRG_UA_BACKUPSERVER
BEFORE INSERT OR UPDATE ON UA_BACKUPSERVER
FOR EACH ROW
BEGIN
:NEW.IP := LOWER(:NEW.IP) ;
:NEW.PORT := LOWER(:NEW.PORT) ;
END;';
EXECUTE IMMEDIATE V_SQL;
END;
/
CREATE TABLE UA_CHIEFSERVER (
GUID VARCHAR (100) NULL ,
IP VARCHAR (20) NULL ,
PORT VARCHAR (10) NULL ,
LOADBALANCE VARCHAR (5) NULL ,
DBHOST VARCHAR (100) NULL ,
DBNAME VARCHAR (100) NULL ,
DBUSERNAME VARCHAR (100) NULL ,
DBPASSWORD VARCHAR (100) NULL ,
VERSION VARCHAR (1000) NULL ,
ISVALID INT NOT NULL
)
;
/
CREATE TABLE UA_CLIENT (
IP VARCHAR (20) NOT NULL ,
PORT VARCHAR (10) NOT NULL ,
GROUPID VARCHAR (100) NOT NULL
)
;
/
DECLARE
V_SQL VARCHAR2(2000);
BEGIN
V_SQL:=' CREATE OR REPLACE TRIGGER TRG_UA_CLIENT
BEFORE INSERT OR UPDATE ON UA_CLIENT
FOR EACH ROW
BEGIN
:NEW.IP := LOWER(:NEW.IP) ;
END;';
EXECUTE IMMEDIATE V_SQL;
END;
/