Bom dia,

passei por um problema que não imaginei que o Oracle (versão Oracle Database 11g Enterprise Edition Release 11.2.0.2.0) poderia deixar acontecer, foi executado um create table dessa forma:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”Q1JFQVRFIFRBQkxFIFRBQl9JbmRpY2VfTW9uZXRhcmlvICgKQSAgICAgICAgICAgICBERUNJTUFMKDIsMCkgTk9UIE5VTEwsCkIgICAgICAgICAgICAgREFURSBOT1QgTlVMTCwKQyAgICAgICAgICAgICBERUNJTUFMKDE1LDE2KSBOT1QgTlVMTAopOwoKVGFibGUgQ3JlYXRlZA==” hover_enabled=”0″]Q1JFQVRFIFRBQkxFIFRBQl9JbmRpY2VfTW9uZXRhcmlvICgKQSAgICAgICAgICAgICBERUNJTUFMKDIsMCkgTk9UIE5VTEwsCkIgICAgICAgICAgICAgREFURSBOT1QgTlVMTCwKQyAgICAgICAgICAgICBERUNJTUFMKDE1LDE2KSBOT1QgTlVMTAopOwoKVGFibGUgQ3JlYXRlZA==[/et_pb_dmb_code_snippet]

Por incrível que parece não deu erro de execução na instrução mesmo o DECIMAL sendo 15,16! A PRECISÃO MAIOR que a quantidade de ESCALA.

Como a empresa que trabalho usa padrão ANSI resolvi testar no SQL SERVER 2008R2 (versão SQL SERVER NT x64 – 10.50.2500.0) e vejam o resultado:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”Q1JFQVRFIFRBQkxFIFRBQl9JbmRpY2VfTW9uZXRhcmlvICgKQSAgICAgICAgICAgICBERUNJTUFMKDIsMCkgTk9UIE5VTEwsCkIgICAgICAgICAgICAgREFURSBOT1QgTlVMTCwKQyAgICAgICAgICAgICBERUNJTUFMKDE1LDE2KSBOT1QgTlVMTAopOwoKTXNnIDE4MywgTGV2ZWwgMTUsIFN0YXRlIDEsIExpbmUgNApUaGUgc2NhbGUgKDE2KSBmb3IgY29sdW1uIOKAmEPigJkgbXVzdCBiZSB3aXRoaW4gdGhlIHJhbmdlIDAgdG8gMTUu” hover_enabled=”0″]Q1JFQVRFIFRBQkxFIFRBQl9JbmRpY2VfTW9uZXRhcmlvICgKQSAgICAgICAgICAgICBERUNJTUFMKDIsMCkgTk9UIE5VTEwsCkIgICAgICAgICAgICAgREFURSBOT1QgTlVMTCwKQyAgICAgICAgICAgICBERUNJTUFMKDE1LDE2KSBOT1QgTlVMTAopOwoKTXNnIDE4MywgTGV2ZWwgMTUsIFN0YXRlIDEsIExpbmUgNApUaGUgc2NhbGUgKDE2KSBmb3IgY29sdW1uIOKAmEPigJkgbXVzdCBiZSB3aXRoaW4gdGhlIHJhbmdlIDAgdG8gMTUu[/et_pb_dmb_code_snippet]

Também testado no DB2 (versão DB2 9.5):

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”Q1JFQVRFIFRBQkxFIFRBQl9JbmRpY2VfTW9uZXRhcmlvICgKQSAgICAgICAgICAgICBERUNJTUFMKDIsMCkgTk9UIE5VTEwsCkIgICAgICAgICAgICAgREFURSBOT1QgTlVMTCwKQyAgICAgICAgICAgICBERUNJTUFMKDE1LDE2KSBOT1QgTlVMTAopOwoKREIyIFNRTCBFcnJvcjogU1FMQ09ERT0tNjA0LCBTUUxTVEFURT00MjYxMSwgU1FMRVJSTUM9REVDSU1BTCgxNSwxNiksIERSSVZFUj0zLjUzLjk1IENvbWFuZG86IOKApg==” hover_enabled=”0″]Q1JFQVRFIFRBQkxFIFRBQl9JbmRpY2VfTW9uZXRhcmlvICgKQSAgICAgICAgICAgICBERUNJTUFMKDIsMCkgTk9UIE5VTEwsCkIgICAgICAgICAgICAgREFURSBOT1QgTlVMTCwKQyAgICAgICAgICAgICBERUNJTUFMKDE1LDE2KSBOT1QgTlVMTAopOwoKREIyIFNRTCBFcnJvcjogU1FMQ09ERT0tNjA0LCBTUUxTVEFURT00MjYxMSwgU1FMRVJSTUM9REVDSU1BTCgxNSwxNiksIERSSVZFUj0zLjUzLjk1IENvbWFuZG86IOKApg==[/et_pb_dmb_code_snippet]

Para não imaginar que seria problema por utilizar DECIMAL (que é convertido nativamente para NUMBER) testei utilizando NUMBER e em todos ambientes ocorreu o mesmo resultado.

Essa doeu aí em Oracle?
Se alguém da Oracle ler isso podem reportar como BUG?

Obs.: Quando eu for dar minhas xingadas no SQL Server vou lembrar disso! eheheh

Att,
capin