Type de données SQL à utiliser lors de l'insertion de l'argent
Je suis à l'aide de Oracle SQL base de données et j'ai insérer une valeur monétaire(salaire) dans le cadre d'une ligne. Pour quelque étrange raison, l'argent de la commande ne fonctionne pas, est-il suppléants qui fonctionne avec cette?
De données de format d'entrée: £00,000.000
CREATE TABLE staff
(staffno CHAR(6) NOT NULL
, staffsurname VARCHAR(8) NOT NULL
, staffforename VARCHAR(7) NOT NULL
, salary MONEY NOT NULL
, PRIMARY KEY (staffno)
);
- Oracle, mes excuses - correction de la balise.
- Oracle recommande l'utilisation de
varchar2()
plutôt quevarchar()
pour les cordes, comme une note.
Vous devez vous connecter pour publier un commentaire.
Regardez cette ligne
Il n'existe pas d'argent de type de données.
Si vous êtes à la recherche de quelque chose de semblable à
SQL-Server
petite de l'argent, vous voulez utiliser unNumber(10,4)
et puis le format du numéro.Vous pouvez formater le numéro à l'aide
to_char
fonctionvarchar(15)
si vous souhaitez stocker des données avec le signe et la virgule etc. Notez que 15 ne peut pas être de la bonne longueur, la changer, quelle que soit la limite que vous voulez autoriser.VARCHAR
(en faitVARCHAR2
puisque c'est Oracle) est une Mauvaise Idée. Il serait assez bien la règle out de gamme requêtes sur cette colonne.L ' "étrange" la raison est simple: Il n'y a pas d'ARGENT de type de données.
Le type de données le plus approprié pour les valeurs monétaires serait
NOMBRE
(en utilisant le échelle). Depuis, c'est un décimal à virgule flottante type, il est mieux adapté pour les valeurs monétaires de la binaire les types à virgule flottanteBINARY_FLOAT
etBINARY_DOUBLE
.Noter, cependant, que vous aurez toujours besoin de analyser la chaîne d'entrée
£00,000.000
dans votre front-end et l'envoyer comme une valeur numérique à l'extrémité arrière.0
.