динамическое объявление / запрос в Oracle 9i - PullRequest
1 голос
/ 20 декабря 2010

В Oracle, учитывая список имен таблиц, я хочу выполнить операторы «выбрать столбец1 в таблицу var1 из таблицы» для большого количества таблиц.И я хочу сделать это для всех столбцов таблицы.Я не могу объявить тип var1, пока запрос с user_tab_columns не возвращает тип столбца.Я попытался объявить var1 как sys.anytype, но получил ORA-00932 с сообщением об ошибке, таким как «несовместимые типы данных: ожидаемый CHAR получил CHAR».

Так, как я могу обойти эту ошибку или как я могу динамически объявить переменную?Большое спасибо.

Ответы [ 2 ]

1 голос
/ 20 декабря 2010

Большинство типов данных неявно преобразуются в VARCHAR. Очевидно, что есть исключения, но если ваши таблицы - это только varchars, даты и числа, то с вами все будет в порядке.

0 голосов
/ 20 декабря 2010

Крейг прав, вы, вероятно, должны объявить его как VARCHAR2 вместо anytype.

Эта статья Джеффа Хантера имеет замечательную функцию, которая позволяет легко заполнять переменную так, чтобы она не ломалась, если ваши данные не могут быть преобразованы.*

...