Ir para conteúdo
johnathangav

Erro de conversão string para numérico

Recommended Posts

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

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.