|
|
|
Perl: Как работать с числовыми данными в СУБД?
|
|||
|---|---|---|---|
|
#18+
Есть скрипт, который получает информацию из СУБД Oracle (используется DBI). Запрос возвращает в том числе и числовые данных (денежные суммы, тип NUMBER(20,5)). Данные получаю с помощью fetchrow_hashref, в хеше следующие данные (print Dumper($row)): Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. В поле DOLG значение 6.50. Но хранится оно, как текст, и при арифметических операциях округляется до 6. Как следует с этим полем поступать? Можно ли настроить DBI таким образом, чтобы при выборке данных числовые значения сразу приходили, как числа? Или нужно заменять запятую на точку (в этом случае при арифметических операциях дробные значения учитываются)? ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2012, 11:27:55 |
|
||
|
Perl: Как работать с числовыми данными в СУБД?
|
|||
|---|---|---|---|
|
#18+
Сделал таким образом, уж не знаю, насколько правильно: $dbh->do("ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '. '"); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2012, 11:41:49 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=37827214&tid=1465073]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 314ms |

| 0 / 0 |
