Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在oracle数据库中创建带字符串的触发器列id自动递增?_Sql_Database_Oracle_Triggers_Auto Increment - Fatal编程技术网

Sql 如何在oracle数据库中创建带字符串的触发器列id自动递增?

Sql 如何在oracle数据库中创建带字符串的触发器列id自动递增?,sql,database,oracle,triggers,auto-increment,Sql,Database,Oracle,Triggers,Auto Increment,我希望在列id中显示的结果:S-1、S-2、S-3 CREATE OR REPLACE TRIGGER auto_id BEFORE INSERT ON login REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW BEGIN :NEW.id := :NEW.id || to_char('"S-"',to_char(seq_log.nextval)); END login; 但当我插入数据时,它是错误的 ORA-065

我希望在列id中显示的结果:S-1、S-2、S-3

CREATE OR REPLACE TRIGGER auto_id
BEFORE INSERT ON login 
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW

BEGIN
    :NEW.id := :NEW.id || to_char('"S-"',to_char(seq_log.nextval));
END login;
但当我插入数据时,它是错误的 ORA-06502:PL/SQL:数字或值错误:字符到数字转换错误 ORA-06512:“WKSP_WORKSPACE0089.自动识别码”,第3行 ORA-04088:执行触发器“WKSP_WORKSPACE0089.AUTO_ID”时出错 ORA-06512:在“SYS.DBMS_SQL”中,第1721行应该是

:NEW.id := :NEW.id || 'S-' || to_char(seq_log.nextval);

如果将
id
声明为数字而不是字符串,则会发生这种情况。