Поле-константа в хранимой процедуре

Модераторы: kdv, CyberMax

Ответить
scoper
Сообщения: 3
Зарегистрирован: 01 ноя 2007, 16:19

Поле-константа в хранимой процедуре

Сообщение scoper » 01 ноя 2007, 17:34

Добрый день.

Пытаюсь создать хранимую процедуру в которой есть следующая строка:

Код: Выделить всё

SELECT CREATE AS DT, 1 AS ETYPE
Но получаю следующую ошибку:

Код: Выделить всё

Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
ETYPE.
unknown ISC error 336397208.
В простом запросе это работает на ура, почему не работает в хранимой процедуре и как это можно обойти?

Заранее спасибо....

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 01 ноя 2007, 20:24

А если написать

Код: Выделить всё

SELECT "CREATE" AS DT, 1 AS ETYPE
Кроме того, у тебя неправильно установлен сервер (какой бы он ни был), по крайней мере файл .MSG не соответствует клиентской библиотеке.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 01 ноя 2007, 23:42

гм. а зачем в процедуре у селекта алиасы имен столбцов? Кому они там нужны?

scoper
Сообщения: 3
Зарегистрирован: 01 ноя 2007, 16:19

Сообщение scoper » 02 ноя 2007, 11:55

Извиняюсь, похоже разобрался... Надо было объявить поле ETYPE в начале...

Код: Выделить всё

DECLARE ETYPE INTEGER;
Но всеравно спасибо :)

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 02 ноя 2007, 12:27

Я бы поставил вопрос шире: зачем в ХП select константы? Аффтар не знает про оператор присваивания? (Я такое видел у начинающих ораклистов: select 2*2 from dual into MyVar.)

mdfv
Сообщения: 119
Зарегистрирован: 23 май 2006, 15:53

Сообщение mdfv » 02 ноя 2007, 15:00

Dimitry Sibiryakov писал(а):Я бы поставил вопрос шире: зачем в ХП select константы?
Чаще всего для insert into.. select from.

scoper
Сообщения: 3
Зарегистрирован: 01 ноя 2007, 16:19

Сообщение scoper » 02 ноя 2007, 15:11

Сначала делал несколько select с разными условиями и выставлял разную константу в поле ETYPE а затем делал UNION.

Ответить