2015-03-12 34 views
6

Oracle SQL veritabanını kullanıyorum ve bir satırın parçası olarak parasal bir değer (maaş) eklemem gerekiyor. Bazı garip sebeplerden dolayı para komuta çalışmıyor, bununla çalışacak alternatifler var mı?SQL Para birimi eklerken kullanacağı veri türü

Veri girişi biçimi: "garip" Nedeni basit £ 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) 
        ); 
+0

Oracle kullanarak numarayı biçimlendirebilir özürlerimi - etiketi sabit. – user3686991

+2

Oracle, bir not olarak dizeler için varchar() 'yerine varchar2()' nin kullanılmasını önerir. –

cevap

5

Bak hiçbir mevcut para veri türü vardır.

SQL-Server küçük para türüne benzer bir şey arıyorsanız, Number(10,4) numaralı telefonu kullanmak ve ardından bu numarayı biçimlendirmek istediğinizde.

Sen to_char fonksiyonunu

select to_char(yourColumn, '$99,999.99') from yourTable where someCondition 
+0

Bu uygulamanın ön ucu yok, sadece veritabanını yapılandırarak yapıyorum (oracles iacademy kullanarak pratik yapıyorum) böylece dizeyi ayrıştıramıyorum. – user3686991

+0

@ user3686991 düzenleme konusuna bakın. –

+0

Örneğin, benim girdim: 45.000 £. VARCHAR (7,2) kullanarak çalışır mı? – user3686991

3

: There is no MONEY data type.

Parasal değerler için en uygun veri türü NUMBER (uygun bir ölçeğiyle kullanarak) olur. ondalık kayan nokta türü olduğundan, ikili kayan nokta türleri BINARY_FLOAT ve BINARY_DOUBLE'dan daha parasal değerler için daha uygundur.

Not olsa da, yine de ön uçta parse girdi dizesi £00,000.000 gerekiyor ve arka ucuna bir sayısal değer olarak o göndereceği. Bu hat

salary MONEY NOT NULL 

de

+0

Tamam ve 00.000,00 değerinde bir parasal değer eklemek için doğru format ne olurdu? – user3686991

+0

sıfırın parasal değeri sadece 0 'dır. –

İlgili konular