johnathangav 0 Denunciar post Postado Novembro 9, 2021 Olá, boa noite! Podem me ajudar, por favor Estou tentando obter alguns dados via arquivo externo em meu banco de dados e após obter estou convertendo os dados para número, porem está sendo retornado a seguinte mensagem de erro: Relatório de erros - ORA-06502: PL/SQL: erro: erro de conversão de caractere em número numérico ou de valor ORA-06512: em line 14 06502. 00000 - "PL/SQL: numeric or value error%s" *Cause: An arithmetic, numeric, string, conversion, or constraint error occurred. For example, this error occurs if an attempt is made to assign the value NULL to a variable declared NOT NULL, or if an attempt is made to assign an integer larger than 99 to a variable declared NUMBER(2). *Action: Change the data, how it is manipulated, or how it is declared so that values do not violate constraints. Segue abaixo o meu código: SET SERVEROUTPUT ON DECLARE F UTL_FILE.FILE_TYPE; LINHA VARCHAR2(2000); V_META FLOAT; BEGIN F := UTL_FILE.FOPEN('IMPOBJ', 'OBJ08.csv', 'R'); LOOP BEGIN UTL_FILE.GET_LINE(F, LINHA); EXCEPTION WHEN NO_DATA_FOUND THEN EXIT; END; V_META := TO_NUMBER(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTR(LINHA,INSTR(LINHA, ';',-1),20),';',''),'.',''),' ',''),'-','0')); DBMS_OUTPUT.PUT_LINE(V_META); END LOOP; UTL_FILE.FCLOSE(F); END; Os dados que estou tentando converter são esses: 1260,19 1272 1280,19 1283,39 1287,74 1290,71 1295,38 1297,12 1300,76 1301,65 1311,04 1312,27 1316,66 1329,96 1331,2 1332,39 1333,38 1337,53 1338,19 1339,61 1340,84 1341,36 1341,54 1347,4 1353,39 1357,33 1360,29 1361,43 1363,61 1376,1 1394,15 1399,47 1400,15 1406,75 1408,26 1409,24 1409,79 1415,44 1432,96 1433,07 1448,8 1450,59 1453,26 1453,8 1458,14 1459,1 1459,77 1460,04 1460,12 1469,42 1469,48 1482,51 1486,13 1488 1489,97 1495,67 1496,52 1507,23 1509,6 1511,02 1511,4 1511,86 1512,17 1515,86 1524,11 1529,8 1530,53 1537,67 1538,04 1540,16 1547,91 1549,44 1553,98 1563,24 1566,91 1568,05 1569,05 1571,42 1579,05 1584,7 1585,82 1588,08 1589,17 1593,81 1594,3 1596,7 1597,53 1606,09 1613,33 1614,87 1620,88 1623,21 1624,78 1625,34 1626,51 1630,31 1636,18 1637,38 1641,72 1641,79 1643,97 1644,83 1652,35 1660,77 1665,39 1666,17 1671,96 1672 1679,41 1684,58 1705,34 1706,81 1715,73 1723,23 1753,79 1756,85 1763,97 1767,19 1767,21 1768,45 1769,16 1773,42 1773,43 1783,84 1785,87 1787,13 1787,53 1790,02 1790,1 1799,53 1800,95 1803,74 1815,21 1818,04 1834,58 1839,8 1863,5 1871,45 1872,02 1872,07 1872,53 1873,07 1874,67 1886,61 1907,8 1912,73 1913,17 1916,7 1917,99 1921,33 1928,36 1929,54 1940,17 1962,11 1967,62 1974,61 1974,83 1994,73 2001,8 2013,33 2019,85 2027,81 2033,66 2043,35 2046,54 2047,34 2048,98 2050,8 2065,93 2066,52 2086,38 2097,38 2105,09 2137,99 2165,27 2171,23 2171,33 2181,62 2186,78 2187,11 2189 2191,62 2196,87 2197,84 2202,58 2203,76 2208,16 2243,59 2244,57 2248,9 2259,46 2261,93 2297,18 2303,41 2304,74 2306,19 2317,41 2324,33 2327,01 2328,14 2331,51 2348,12 2374 2377,64 2381,27 2382,44 2383,54 2386,56 2391,11 2425,17 2426,96 2430,53 2432,36 2452,18 2452,65 2457,08 2458,03 2462,02 2468,99 2477,82 2479,38 2482,66 2494,31 2495,16 2495,95 2498,31 2507,58 2511,48 2518,82 2539,49 2541,75 2541,98 2548,45 2551,68 2556,85 2561,11 2565,79 2567,25 2567,79 2572,83 2576,47 2578,06 2580,42 2601,45 2633,55 2635,95 2636,77 2638,99 2643,71 2647,22 2647,39 2654,76 2667,26 2699,26 2703,02 2711,43 2734,35 2772,77 2788,69 2809,08 2822,99 2828,46 2831,94 2843,62 2852,4 2862,89 2881,14 2890,59 2906,18 2912,02 2914,39 2929,48 2931,74 2940,04 2944,23 2951,2 2956,57 2962,19 2982,86 2988,14 2991,08 3035,26 3035,8 3036,52 3038,35 3041,27 3044,57 3047,6 3067,64 3069,06 3072,81 3079,87 3110,89 3120,1 3124,65 3140,54 3147,65 3156,7 3157,29 3158,11 3169,95 3185,42 3186,5 3187,89 3195,83 3200,43 3261,93 3267,78 3289,97 3314,58 3338,52 3345,08 3348,76 3364,88 3369,62 3393,17 3418,7 3465,99 3466,14 3503,14 3534 3582,1 3618,82 3653,7 3688,45 3698,75 3716,03 3730,34 3743,83 3757,45 3757,69 3782,94 3785,99 3831,27 3831,96 3887,01 3900,87 3904,86 3918,02 3963,36 3985,69 4027,7 4057,35 4069,3 4082,97 4118,65 4169,3 4195,11 4198,78 4241 4249,76 4274,49 4313,19 4321,87 4355,58 4410,98 4425,07 4428,06 4428,29 4482,88 4497,23 4498,39 4530,57 4540,24 4663,02 4688,1 4724,79 4733,98 4748,16 4823,5 4826,25 4834,62 4940,92 4956,79 4979,21 4990,52 5030,22 5077,52 5100,34 5113,57 5132,05 5132,51 5134 5136,09 5141,28 5168,35 5195,35 5251,67 5261,48 5266,06 5290,52 5330 5332,39 5341,94 5343,61 5403,22 5427,23 5428,97 5446,61 5461,02 5479,61 5487,34 5596,68 5640,46 5641,07 5687,13 5743,56 5749,97 5844,09 5845,89 5871,89 5932,89 5933,92 5979,45 5992,84 6016,3 6028,41 6031,35 6046,76 6147,55 6149,41 6162,22 6198,15 6198,46 6207,39 6236,35 6257,5 6267,21 6344,69 6348 6371,93 6430,7 6431,84 6431,96 6686,08 6699,17 6819,47 6865,09 6872,99 6885,33 6900,05 7252,96 7261,17 7272,66 7302,37 7333,66 7356,99 7464,48 7468,34 7656,35 7659,66 7677,88 7679,32 7746,38 7853,48 7853,96 7869,64 7884,84 7957 8053,51 8063,79 8206,71 8245,05 8272,01 8282 8418,46 8423,66 8476,08 8534,3 8546,03 8674,99 8704,75 8851,25 9248,97 9319,69 9394,52 9416,53 9520,82 9697,84 9778,28 9893,65 10105,74 10225,83 10244,22 10375,13 10383,41 10392,01 10566,03 10636,59 10905,32 11042,71 11230,06 11252,21 11373,34 11441,01 11482,7 11484,35 11499,18 11669,03 11679,94 11820,78 12084,8 12420,86 12449,42 12455,91 12767,2 12855,65 12875,72 12964,36 13162,64 13244,28 13254,25 13332,04 13350,55 13415,4 13488,4 13506,54 13606,43 13612,09 13844,73 14142,79 14254,8 14399,4 14707,34 14714,41 14840,1 14963,85 15091,75 15269,8 15321,96 15596,94 15900,44 15980,99 16769,93 16877,4 16912,61 17023,07 17111,81 17180,03 17342,95 17646,52 17959,88 18339,35 18625,02 18777,3 19194,89 19251,03 20645 21136,07 21834,87 21849,04 21910,62 22213,1 23698,54 24698 25651,77 25911,89 26691,33 28210,21 28401,36 28894,78 29604,32 30022,75 30517,51 31070,71 31798,33 32680,09 33837,48 34973,16 37241,45 38560,05 38886,22 39642,06 39701,03 41241,93 42231,06 43445,19 44848,41 48253,13 49476,77 50801,32 51503,61 52356,84 52582,67 55249,12 56571,17 59580,91 64357,61 67423,58 71590,45 72029,66 72306,61 74965,65 86970,74 98900,17 104111,77 114900,66 125062,52 137184,62 145182,83 176385,3 253688,09 388755,66 Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Novembro 9, 2021 alter session set NLS_NUMERIC_CHARACTERS = ',.'; https://www.ti-enxame.com/pt/oracle/configuracao-de-nls-numeric-characters-para-decimal/1046650067/ https://docs.oracle.com/cd/B19306_01/server.102/b14237/initparams129.htm#REFRN10126 Compartilhar este post Link para o post Compartilhar em outros sites
johnathangav 0 Denunciar post Postado Novembro 9, 2021 Consegui descobrir o que está causando o problema. No final de cada linha consta '^M' indicando a quebra de linha, pois o documento foi gerado no Excel, no Windows e depois eu enviei para o Linux, porem o utilitário FTP que eu utilizei não efetuou a conversão. Consegui resolver o problema usando o comando dos2unix. Mesmo assim, muito obrigado por responder... Compartilhar este post Link para o post Compartilhar em outros sites