【发布时间】:2016-12-20 15:40:46
【问题描述】:
使用 Oracle 数据库:
如何在 INSERT 语句中使用连接和强制转换?
一些测试需要插入数据,需要更改插入数据的ID。
到目前为止,我得到了这个:
BEGIN
FOR i IN 100..400 LOOP
INSERT INTO PRESTATION
(ID_DEMANDE, ID_PRESTATION, CODE_PRODUCTEUR_UNICITE_PRESTA, SELECTION, ID_RUBRIQUE, LIBELLE_CONTRAT, CODE_PRODUCTEUR_ENTITE_JURIDIQ, GUICHET_GESTIONNAIRE, CODE_SOURCE, CODE_PRODUIT, CODE_SOUS_PRODUIT, LIBELLE_PRODUIT, CODE_BANQUE, NUMERO_CLIENT, MONTANT, DEVISE, RESEAU_DISTRIBUTION, DATE_OUVERTURE, DATE_FERMETURE, ROLE)
VALUES
('DO20161220160056000592', CONCAT('0000000317501820134', CAST(i AS VARCHAR)), '00020', 'O', 0, 'COMPTE COURANT', '30003', '03175', '001', '020', '001', 'COMPTE D ENTREPRISE', '30003', '00000013419', '4242,420', 'EUR', '10', '27/01/93', '31/12/99', '10');
END LOOP;
END;
我可能需要在某处添加一个 SELECT。
或者可能有更好的方法来生成这些 ID...
【问题讨论】:
-
您的问题?有错误吗?
-
你可以用更短的
'0000000317501820134'||i代替CONCAT('0000000317501820134', CAST(i AS VARCHAR))。 -
您将 number 作为字符串插入(例如 '4242,420')和 date 作为字符串插入(例如'27/01/93') -即使是两位数的年份。我敢打赌,由于设计如此糟糕,您迟早会面临很多问题。