Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Select из функции не идет / 15 сообщений из 15, страница 1 из 1
13.05.2003, 16:49
    #32158815
roboforce
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select из функции не идет
Oracle 8i.
Пользуюсь PLSQL Developer-ом.
Когда в окошке
набираю
Код: plaintext
select f1 from table1
- оно работает.

Когда создаю функцию содержащую такой же селект
Код: plaintext
1.
2.
...
select f1 into Result from table1;
...


Говорит что table1 - нет такого.
ранее такого не было, это что-то сделали, а что я не знаю.
Вопрос, что такого наделали, что такая катавасия происходит?
В окошке(простым селектом) доступ к таблице есть, а в функции нет?
...
Рейтинг: 0 / 0
13.05.2003, 17:11
    #32158842
Vladimir Demkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select из функции не идет
А функция и таблица находяться в разных схемах? (Подозреваю, что так оно и есть)
Если да, то необходимо дать прямые права на селект на таблицу пользователю в чьей схеме находится функция. Через роль такие права на сохраненную процедуру не распространяются.
...
Рейтинг: 0 / 0
13.05.2003, 17:43
    #32158892
roboforce
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select из функции не идет
Хорошо, а как дать права на
Код: plaintext
create public database link FOX.WORLD  using 'fox' ? 

Который, создал я сам, что интересно.
далее оно ругается на
Код: plaintext
insert into klul@fox.world(KODUL,NAIMUL) values(kod,Sname);

klul@fox.world - нет такого говорит.

Error: PLS-00201: identifier 'KLUL@FOX.WORLD' must be declared
Line: 16
Text: insert into klul@fox.world(KODUL,NAIMUL) values(kod,Sname);
...
Рейтинг: 0 / 0
13.05.2003, 17:47
    #32158899
raven13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select из функции не идет
Если не ошибаюсь надо писать
<объект>.@<линк>
т.е. insert into klul.world(KODUL,NAIMUL)@fox values(kod,Sname);
...
Рейтинг: 0 / 0
13.05.2003, 18:03
    #32158913
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select из функции не идет
Скорее всего на сервер FOX.WORLD ты попадаешь под именем текущего пользователя. Там есть такой, с таким же паролем? Или попробуй указать его явно:

Код: plaintext
1.
create public database link FOX.WORLD connect to ... identified by ... using 'fox';
...
Рейтинг: 0 / 0
13.05.2003, 18:11
    #32158922
Violina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select из функции не идет
В каких случаях нужно использовать ключевое слово .WORLD при создании dblink?
...
Рейтинг: 0 / 0
13.05.2003, 18:31
    #32158937
raven13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select из функции не идет
2Violina
Да вообще-то использовать совсем необязательно пиши что хочешь

2roboforce
> Не посмотрел на имя линка :)
Попробуй перед klul написать имя схемы
...
Рейтинг: 0 / 0
13.05.2003, 18:35
    #32158942
roboforce
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select из функции не идет
Думаю, слишком много чести обзывать фокспрошные файлы - сервером.
Но на всякий случай попробывал, identified by ... тот же еффект.

Это у меня слов никаких нету, чтоб я собственноручно изготовленный DBlink не мог пользовать в PLSQL.
...
Рейтинг: 0 / 0
13.05.2003, 18:41
    #32158948
raven13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select из функции не идет
Так что ты сразу не сказал что пытаешься вставить записи в фокспрошную таблицу ?
Выполни
DBMS_HS_PASSTHROUGH.execute_immediate@fox.world ('CREATE TABLE aaa (id number)');

Что говорит?
...
Рейтинг: 0 / 0
13.05.2003, 19:28
    #32158974
roboforce
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select из функции не идет
а че в 8i есть такой(DBMS_HS_PASSTHROUGH) пакет?
...
Рейтинг: 0 / 0
14.05.2003, 00:36
    #32159081
raven13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select из функции не идет
А попробовать не бывает :-).

Есть линк созданый для фокспрошных файлов (реально работающий) и на запрос
select * from aaa@postdb выдается
ORA-00942: table or view does not exist [Generic Connectivity Using ODBC]DRV_OpenTable: ORA-02063: preceding 2 lines from POSTDB

И как у тебя выходит ситуация описанная в посте №1 - непонятно. ИМХО ты что-то темнишь
...
Рейтинг: 0 / 0
14.05.2003, 14:09
    #32159620
roboforce
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select из функции не идет
Raven13:
Я повторяю, что
1. я создал публичный dblink
2. Просто селект к таблице по этому dblink сделать я могу.
3. Когда же, я пытаюсь выполнить этот же запрос в функции, Oracle сообщает, что identifier 'KLUL@FOX.WORLD' must be declared.

и еще одно. Однозначно в 8.1.7. DBMS_HS_PASSTHROUGH - нет.
...
Рейтинг: 0 / 0
14.05.2003, 14:45
    #32159660
raven13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select из функции не идет
1) В примере данном мной линк тоже существует (и как ты пишешь тоже к файлам фокспро)
2) при работе с файлами фокспро все работает просто, если имеешь aaa.dbf то

select * from aaa@fox.world будет работать (если вс енормально настроено) - у тебя такая ситуация.
3) при обращении к НЕСУЩЕСТВУЮЩЕЙ таблице выдается
ORA-00942: table or view does not exist [Generic Connectivity Using ODBC] ....

Поэтому
1) если п. 2. соблюдается + линк общий то все должн работать.
2) если что-то не работает см. п. 3 (скорее всего нет таблицы в необходимой директории)
3) или что-то ты недоговариваешь.

ЗЫ То что ты не видишь описание пакета не значит что его нет ;-)
...
Рейтинг: 0 / 0
14.05.2003, 16:11
    #32159766
roboforce
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select из функции не идет
Значит заработала оная процедура, почему, НЕ ЗНАЮ.
Расскажу как оно было.
1. Имеется некий пользователь, ему выписана роль DBA.
(Сразу поясню, что этот пользователь создан фирмой-разработчиком нашего ПО.)
2. Я создал себя и тоже радостно присвоил себе роль DBA.
3. Создал, находясь под собой, публичный линк, к которому можно было обращатся обычным селектом, но нельзя было использовать такой селект в функции мною же создаваемой.
4. После мучений, я обратился к фирмачам, они покумекали и сказали, а попробуй создать функцию, только имя ее предвари именем нашего фирменного пользователя.
5. Функция заработала.
Я не темню рассказываю как есть.
...
Рейтинг: 0 / 0
14.05.2003, 23:47
    #32160080
vskv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select из функции не идет
Ой, что-то мне подсказывает, что твою функцию вызывал кто-то третий, у кого в схеме не хватало синонима на твою функцию...

По крайней мере, это единственное объяснение
Код: plaintext
 4 . После мучений, я обратился к фирмачам, они покумекали и сказали, а попробуй создать функцию, только имя ее предвари именем нашего фирменного пользователя. 
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Select из функции не идет / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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