powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / источник ошибки
3 сообщений из 3, страница 1 из 1
источник ошибки
    #32055522
Фотография Lexis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал курсор по экспорту данных из одной таблице в другую, на 35677ой строке выскакивает ошибка:

The following error has occurred:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 45

не могу найти источник ошибки...длинна данных, строк и т.п. вроде удовлетворяет

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
declare v_accountnumber customer.ACCOUNTNUMBER%type;
		v_lastname customer.name1%type;
		v_firstname customer.name2%type;
		v_phonenumber customer.PRIMARYTELEPHONE%type;
		v_phoneextention customer.PRIMARYTELEPHONE%type;
		v_faxnumber customer.PRIMARYFAX%type;
		v_name customertype.NAME%type;
		v_TERRITORYNAME salesterritoryname.TERRITORYNAME%type;
		v_REGIONNAME salesregionname.REGIONNAME%type;
		v_businessflag customer.COMPANYFLAG%type;
		v_agencyflag customer.AGENCYFLAG%type;
	    V_id number ;
		e_exp exception;
cursor c_customer is		
	   select customer.accountid accountnumber, 
	   		  customer.name1 firstname, 
	   		  customer.name2 lastname, 
			  customer.PRIMARYTELEPHONE phonenumber, 
	   		  customer.PRIMARYEXTENSION phoneextention,
	   		  customer.PRIMARYFAX faxnumber,
	   		  substr(customertype.name, 1 , 10 ) name,
	   		  salesterritoryname.TERRITORYNAME TERRITORYNAME,
	   		  salesregionname.REGIONNAME REGIONNAME,          
	   		  customer.COMPANYFLAG businessflag,
	   		  customer.AGENCYFLAG agencyflag
			  from customer, customertype , salesterritoryname, salesregionname
			  where customer.TYPEID=customertype.id (+) and
			  	  customer.SALESTERRITORYID=salesterritoryname.SALESTERRITORYNAMEID (+) and 
				  customer.SALESREGIONID=salesregionname.SALESREGIONNAMEID (+);
begin
	 V_id:= 1 ;
	 open c_customer;
	 fetch c_customer into v_accountnumber, 
	 	   		  	   v_firstname, 
					   v_lastname, 
					   v_phonenumber, 
					   v_phoneextention,  
					   v_faxnumber,
					   v_name,
					   v_TERRITORYNAME,
					   v_REGIONNAME,
					   v_businessflag,
					   v_agencyflag;
	 while c_customer%found loop
	 fetch c_customer into v_accountnumber, 
	 	   		  	   v_firstname, 
					   v_lastname, 
					   v_phonenumber, 
					   v_phoneextention,  
					   v_faxnumber,
					   v_name,
					   v_TERRITORYNAME,
					   v_REGIONNAME,
					   v_businessflag,
					   v_agencyflag;
		 insert into fact.dmclient
		 		(clientkey,
				 accountnumber,
				 firstname,
				 lastname,
				 phonenumber,
				 phoneextension,
				 faxnumber,
				 customertype,
				 salesterritory,
				 salesregion,
				 businessflag,
				 agencyflag
				) 
		 values (V_id, v_accountnumber, 
	 	   		  	   v_lastname, 
					   v_firstname, 
					   to_number(v_phonenumber), 
					   to_number(v_phoneextention),  
					   to_number(v_faxnumber),
					   v_name,
					   substr(v_TERRITORYNAME, 1 , 10 ),
					   substr(v_REGIONNAME, 1 , 10 ),
					   v_businessflag,
					   v_agencyflag
					   );
		 commit;
		 V_id:=V_id+ 1 ;
	 end loop;
	 close c_customer;
 		 
end;	
...
Рейтинг: 0 / 0
источник ошибки
    #32055618
stalker_cop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А че используешь такую конструкцию
Используй цикл по курсору и все нормально будет
Оракл сам будет загонять данные в курсорную переменную и у тебя все вопросы сами отпадут. Покрайне мере этот.
for cRec in c_customer loop
...
cRec.accountnumber - делаешь с ним что нужно
...
Рейтинг: 0 / 0
источник ошибки
    #32055663
Фотография Lexis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
использую, потому что не знаю
скинь сслыку на пример если можно
спасибо
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / источник ошибки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]