SQL语句把EXCEL导入PL/SQL
我知道的方法 先SELCT * FORM TABLENAME FOR UPDATE 然后把数据直接复制进来,但表主键是在Sequences调.nextval 自动生成,粘贴提交的话,主键就为空,这个该怎么解决呢?
追问:以前已经建立过序列,insert时调用.NEXTVAL可以自动生成插入,但是数据过多,从Excel复制的 for update应该怎么写这个主键呢?
我知道的方法 先SELCT * FORM TABLENAME FOR UPDATE 然后把数据直接复制进来,但表主键是在Sequences调.nextval 自动生成,粘贴提交的话,主键就为空,这个该怎么解决呢?
追问:以前已经建立过序列,insert时调用.NEXTVAL可以自动生成插入,但是数据过多,从Excel复制的 for update应该怎么写这个主键呢?
答案:写一个触发器实现自增长:
比如表名:tab,主键为:id
1. 增加一个序列号: create sequence seq_tab
2. 增加一个触发器,如果是insert,则取序列号值,赋予主键列
CREATE OR REPLACE TRIGGER TRI_tab
BEFORE INSERT ON tab FOR EACH ROW
DECLARE
-- LOCAL VARIABLES HERE
BEGIN
IF :NEW.id IS NULL THEN
SELECT SEQ_tab.NEXTVAL INTO :NEW.id FROM DUAL;
END IF;
END TRI_tab;
其他:用textImport功能,里面可以设置主键取sequence
上一个:PL/SQL的 "COPY TO EXCEL "功能时候,excel中中文数据乱码,求解
下一个:2007 Excel导入Oracle,最多能导入多少条数据,数据最大为多少KB???