pl/sql oracle如何检查或如何存储序列的当前值
我正在尝试在将记录插入表后显示它。但是我的主键是一个带有序列的子字符串,所以我找不到保存该值的方法…这是我的代码pl/sql oracle如何检查或如何存储序列的当前值,oracle,plsql,Oracle,Plsql,我正在尝试在将记录插入表后显示它。但是我的主键是一个带有序列的子字符串,所以我找不到保存该值的方法…这是我的代码 SET SERVEROUTPUT ON ACCEPT MARQUE PROMPT "Entrez la marque de la moto " ACCEPT ANNEE PROMPT "Entrez l annee de la moto: " ACCEPT PRIX PROMPT "Entrez le prix de la moto: " DECLARE myMarqu
SET SERVEROUTPUT ON
ACCEPT MARQUE PROMPT "Entrez la marque de la moto "
ACCEPT ANNEE PROMPT "Entrez l annee de la moto: "
ACCEPT PRIX PROMPT "Entrez le prix de la moto: "
DECLARE
myMarque VARCHAR2(50):='&MARQUE';
myAnnee VARCHAR2(6):='&ANNEE';
myPrix NUMBER(6,2):=&PRIX;
lecode VARCHAR2(12);
BEGIN
IF myAnnee = 2013 THEN
INSERT INTO MOTO (CODE, MARQUE, ANNEE, PRIX) VALUES (UPPER(SUBSTR(myMarque, 1,3)||MASEQ.nextval), myMarque, myAnnee, myPrix);
COMMIT;
ELSIF myAnnee = 2014 THEN
INSERT INTO MOTO (CODE, MARQUE, ANNEE, PRIX) VALUES (UPPER(SUBSTR(myMarque, 1,3)||MASEQ.nextval), myMarque, myAnnee, myPrix);
COMMIT;
ELSIF myAnnee = 2015 THEN
INSERT INTO MOTO (CODE, MARQUE, ANNEE, PRIX) VALUES (UPPER(SUBSTR(myMarque, 1,3)||MASEQ.nextval), myMarque, myAnnee, myPrix);
COMMIT;
ELSIF myAnnee = 2016 THEN
INSERT INTO MOTO (CODE, MARQUE, ANNEE, PRIX) VALUES (UPPER(SUBSTR(myMarque, 1,3)||MASEQ.nextval), myMarque, myAnnee, myPrix);
COMMIT;
ELSE
DBMS_OUTPUT.PUT_LINE('Annee invalide SVP VERIFIEZ');
END IF;
END;
/
简言之,我需要的是在提交后显示记录,有什么想法吗?我试图将值保存在变量lecode中,但没有成功。在插入项上使用
RETURNING
子句,例如:
DECLARE
strLast_code MOTO.CODE%TYPE;
BEGIN
INSERT INTO MOTO
(CODE, MARQUE, ANNEE, PRIX)
VALUES
(UPPER(SUBSTR(myMarque, 1,3)||MASEQ.nextval), myMarque, myAnnee, myPrix)
RETURNING CODE INTO strLast_code;
END;
在插入内容中使用
返回
子句,例如:
DECLARE
strLast_code MOTO.CODE%TYPE;
BEGIN
INSERT INTO MOTO
(CODE, MARQUE, ANNEE, PRIX)
VALUES
(UPPER(SUBSTR(myMarque, 1,3)||MASEQ.nextval), myMarque, myAnnee, myPrix)
RETURNING CODE INTO strLast_code;
END;
sequence\u name.currval
将给出序列的当前值
就像
sequence\u name.nextval
一样,您可以获得sequence\u name.currvalsequence\u name.currval
将给出序列的当前值
就像sequence\u name.nextval
一样,您可以获得sequence\u name.currval
另一种解决方案是直接从数据库的元数据中选择:
select last_number from all_sequences where sequence_name='MASEQ';
另一种解决方案是直接从数据库的元数据中选择:
select last_number from all_sequences where sequence_name='MASEQ';
也许您需要最后一个插入id?也许您需要最后一个插入id?谢谢,它工作正常。我不知道你能做到谢谢你,它很好用。我不知道你能做到