2015-03-12 3 views
6

Я использую базу данных Oracle SQL, и мне нужно вставить денежное значение (зарплату) как часть строки. По какой-то странной причине команда денег не работает, есть ли альтернативы, которые будут работать с этим?SQL Тип данных для использования при вставке денег

формат ввода данных: £ 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, мои извинения - исправлен тег. – user3686991

+2

Oracle рекомендует использовать 'varchar2()', а не 'varchar()' для строк, как примечание. –

ответ

5

Посмотрите на этой линии

salary MONEY NOT NULL 

Там нет существующих денег типа данных.

Если вы ищете что-то похожее на тип денег SQL-Server, вы хотите использовать Number(10,4), а затем отформатировать номер.

Вы можете форматировать число с помощью функции to_char

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

Для этого приложения нет интерфейсного интерфейса, просто структурирование базы данных (я студент, так что просто практикую использование oracles iacademy), поэтому я не могу разобрать строку. – user3686991

+0

@ пользователь3686991 см. Редактирование. –

+0

Например, если мой вход был: 45 000,00 фунтов стерлингов. Будет ли он работать с использованием VARCHAR (7,2)? – user3686991

3

"странной" Причина проста: There is no MONEY data type.

Тип данных, наиболее подходящий для денежных значений, будет NUMBER (с использованием соответствующей шкалы ). Так как это десятичный знак с плавающей точкой, он лучше подходит для денежных значений, чем двоичный код с плавающей точкой BINARY_FLOAT и BINARY_DOUBLE.

Заметим, однако, что вам все равно нужно разборе входной строки £00,000.000 в переднем конце и отправить его как числовое значение к заднему концу.

+0

Хорошо, и каков был бы правильный формат для вставки денежной стоимости £ 00,000.00? – user3686991

+0

денежное значение нуля - это просто '0'. –

Смежные вопросы