Est-il possible de générer automatiquement un GUID dans une instruction d'insertion ?
En outre, quel type de champ dois-je utiliser pour stocker ce GUID ?
Est-il possible de générer automatiquement un GUID dans une instruction d'insertion ?
En outre, quel type de champ dois-je utiliser pour stocker ce GUID ?
Vous pouvez utiliser la fonction SYS_GUID() pour générer un GUID dans votre instruction d'insertion :
insert into mytable (guid_col, data) values (sys_guid(), 'xxx');
Le type de données préféré pour stocker les GUID est RAW(16).
Comme le répond Gopinath :
select sys_guid() from dual
union all
select sys_guid() from dual
union all
select sys_guid() from dual
Vous obtenez
88FDC68C75DDF955E040449808B55601
88FDC68C75DEF955E040449808B55601
88FDC68C75DFF955E040449808B55601
Comme le dit Tony Andrews, ne diffère que d'un seul caractère
88FDC68C75D D F955E040449808B55601
88FDC68C75D E F955E040449808B55601
88FDC68C75D F F955E040449808B55601
Peut-être utile : http://feuerthoughts.blogspot.com/2006/02/watch-out-for-sequential-oracle-guids.html
Il n'est pas clair ce que vous voulez dire par auto-générer un guide dans une déclaration d'insertion, mais à mon avis, je pense que vous essayez de faire quelque chose comme ce qui suit :
INSERT INTO MY_TAB (ID, NAME) VALUES (SYS_GUID(), 'Adams');
INSERT INTO MY_TAB (ID, NAME) VALUES (SYS_GUID(), 'Baker');
Dans ce cas, je pense que la colonne ID doit être déclarée comme RAW(16) ;
Je fais cela à l'improviste. Je n'ai pas d'instance Oracle à portée de main pour faire des tests, mais je pense que c'est ce que vous voulez.
Consultez ce lien, il pourrait vous être utile.
http://feuerthoughts.blogspot.com/2006/02/watch-out-for-sequential-oracle-guids.html
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.