2010-02-22 6 views

Répondre

1

Il peut y avoir d'autres moyens, mais ce qui suit est une méthode que je dois utiliser un Guid .NET au sein de PL/éditeur SQL (les octets sont dans un ordre différent):

var bytes = guid.ToByteArray(); 
    var oraBytes = 
    new[] 
     { 
     bytes[3], bytes[2], bytes[1], bytes[0], 
     bytes[5], bytes[4], 
     bytes[7], bytes[6], 
     bytes[8], bytes[9], bytes[10], bytes[11], bytes[12], 
     bytes[13], bytes[14], bytes[15] 
     }; 

    Guid g = new Guid(oraBytes); 
    return g.ToString("N").ToUpperInvariant(); 

Il peut vous donner une certaine inspiration dans la disposition des octets que vous en avez besoin.

0

de msdn:

public Guid(
    string g 
) 

g:

Type: System .. ::. String String qui contient un GUID dans l'un des formats suivants ('d' représente un chiffre hexadécimal dont le cas est ignoré ): 32 chiffres contigus: dddddddddddddddddddddddddddddddd -ou- groupes de 8, 4, 4, 4 et 12 chiffres avec des traits d'union entre les groupes. Le GUID entier peut éventuellement être entre accolades correspondant ou parenthèses: dddddddddddd-DDDDDDDD-dddddddddddd -ou- {dddddddddddd-dddddddd-dddddddddddd} -ou- (dddddddddddd-dddd -dddd-dddddddddddddd) -ou-- Groupes de 8, 4 et 4 chiffres et un sous-ensemble de huit groupes de 2 chiffres, avec chaque groupe précédé du préfixe "0x" ou "0X" et séparés par des virgules. Le GUID ensemble , ainsi que le sous-ensemble, est entre accolades correspondantes: {0xDDDDDDDD, 0xdddd, 0xdddd, {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd}} Tous les accolades, des virgules et les préfixes "0x" sont requis. Tous les espaces incorporés sont ignorés. Tous les zéros principaux d'un groupe sont ignorés. Les chiffres affichés dans un groupe correspondent au nombre maximal de chiffres significatifs qui peuvent apparaître dans ce groupe. Vous pouvez spécifier de 1 à le nombre de chiffres affichés pour un groupe . Les chiffres spécifiés sont supposés être les chiffres de poids faible du groupe .

Questions connexes