Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DBMS_SQL получение значения в переменную соответствующего типа / 10 сообщений из 10, страница 1 из 1
05.10.2011, 10:42
    #37468565
RED32
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_SQL получение значения в переменную соответствующего типа
Везде на форуме при получении значений из DBMS_SQL предлагает использовать строковую переменную и в нее заталкивать значения всех типов, а потом уже в зависимости от типа, полученного DESCRIBE_COLUMNS2, расфасовывать по соответствующим переменным.
Почему не получается это сделать сразу в переменную соответствующего типа?

Выдержки из простого отладочного кода
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 TYPE t_value IS RECORD (
         value_c   VARCHAR2 ( 2000 ),
         value_n   NUMBER,
         value_d   DATE
      );
      a_value         t_value;
--........... open_cursor .... parse ... describe_columns2 ... define_column ... execute ... fetch_rows .. blablabla 

               IF describe_tab (i).col_type = type_date
               THEN
                  DBMS_SQL.COLUMN_VALUE (source_cursor, i, a_value.value_d);
               ELSIF describe_tab (i).col_type = type_number
               THEN
                  DBMS_SQL.COLUMN_VALUE (source_cursor, i, a_value.value_n);
               ELSE
                  DBMS_SQL.COLUMN_VALUE (source_cursor, i, a_value.value_c);
               END IF;


на первой же дате сыпется по ORA-06562
...
Рейтинг: 0 / 0
05.10.2011, 10:46
    #37468574
RED32
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_SQL получение значения в переменную соответствующего типа
поторопился с темой.
Проблема решена - все работает.
Проблема была в кривом использовании DBMS_SQL.define_column - неверно определял типы.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
17.10.2019, 16:53
    #39877806
manaszz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_SQL получение значения в переменную соответствующего типа
RED32,

Привет. извиняюсь за некропостинг, но можно узнать , как решили проблему ? Аналогичная ситуация
...
Рейтинг: 0 / 0
17.10.2019, 17:02
    #39877811
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_SQL получение значения в переменную соответствующего типа
manaszzАналогичная ситуация
Проблема была в кривом использовании DBMS_SQL.define_column - неверно определял типы.

???
...
Рейтинг: 0 / 0
17.10.2019, 17:17
    #39877825
manaszz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_SQL получение значения в переменную соответствующего типа
Leonid Kudryavtsev,
Хотелось б понять в чем кривость и как исправить.
...
Рейтинг: 0 / 0
17.10.2019, 17:22
    #39877827
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_SQL получение значения в переменную соответствующего типа
manaszzХотелось б понять в чем кривость и как исправить.

В чем кривость только Вы и можете знать.
Вы же ее сотворили

"Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему." ( C ) классик
...
Рейтинг: 0 / 0
17.10.2019, 17:24
    #39877829
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_SQL получение значения в переменную соответствующего типа
"Дорогие учёные. У меня который год в подполе происходит подземный стук. Объясните, пожалуйста, как он происходи" ( C )
...
Рейтинг: 0 / 0
17.10.2019, 19:45
    #39877890
manaszz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_SQL получение значения в переменную соответствующего типа
Leonid Kudryavtsev,

Нашёлся умник. Лучше б что полезного сказал.
Вроде такого :

if ( l_dtbl(i).col_type in ( 2 ) ) then
dbms_sql.column_value(l_cur,i,ln_val_number);
ls_val_varchar := to_char(ln_val_number);
elsif ( l_dtbl(i).col_type in ( 12, 178, 179, 180, 181, 231 ) ) then
dbms_sql.column_value(l_cur,i,ld_date);
else
dbms_sql.column_value(l_cur,i, ls_val_varchar);
end if;

Оказывается Define надо сразу в нужный тип делать. Всё от непонимания как оно работает)
...
Рейтинг: 0 / 0
17.10.2019, 20:03
    #39877894
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_SQL получение значения в переменную соответствующего типа
manaszzЛучше б что полезного сказал.А ты читай только полезное. В описании пакета явно указывается на соответствие типов. Да даже без этого, зачем определять как один тип, а потом пытаться получить другой?!
...
Рейтинг: 0 / 0
18.10.2019, 07:25
    #39877982
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBMS_SQL получение значения в переменную соответствующего типа
manaszzНашёлся умник.Воинствующего ламерья ещё больше. Карму ты себе уже обосрал.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DBMS_SQL получение значения в переменную соответствующего типа / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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