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

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


Говорит что table1 - нет такого.
ранее такого не было, это что-то сделали, а что я не знаю.
Вопрос, что такого наделали, что такая катавасия происходит?
В окошке(простым селектом) доступ к таблице есть, а в функции нет?
...
Рейтинг: 0 / 0
Select из функции не идет
    #32158842
Vladimir Demkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А функция и таблица находяться в разных схемах? (Подозреваю, что так оно и есть)
Если да, то необходимо дать прямые права на селект на таблицу пользователю в чьей схеме находится функция. Через роль такие права на сохраненную процедуру не распространяются.
...
Рейтинг: 0 / 0
Select из функции не идет
    #32158892
roboforce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, а как дать права на
Код: 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
Select из функции не идет
    #32158899
raven13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не ошибаюсь надо писать
<объект>.@<линк>
т.е. insert into klul.world(KODUL,NAIMUL)@fox values(kod,Sname);
...
Рейтинг: 0 / 0
Select из функции не идет
    #32158913
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего на сервер FOX.WORLD ты попадаешь под именем текущего пользователя. Там есть такой, с таким же паролем? Или попробуй указать его явно:

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

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

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

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

Есть линк созданый для фокспрошных файлов (реально работающий) и на запрос
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
Select из функции не идет
    #32159620
roboforce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Raven13:
Я повторяю, что
1. я создал публичный dblink
2. Просто селект к таблице по этому dblink сделать я могу.
3. Когда же, я пытаюсь выполнить этот же запрос в функции, Oracle сообщает, что identifier 'KLUL@FOX.WORLD' must be declared.

и еще одно. Однозначно в 8.1.7. DBMS_HS_PASSTHROUGH - нет.
...
Рейтинг: 0 / 0
Select из функции не идет
    #32159660
raven13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Select из функции не идет
    #32159766
roboforce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Значит заработала оная процедура, почему, НЕ ЗНАЮ.
Расскажу как оно было.
1. Имеется некий пользователь, ему выписана роль DBA.
(Сразу поясню, что этот пользователь создан фирмой-разработчиком нашего ПО.)
2. Я создал себя и тоже радостно присвоил себе роль DBA.
3. Создал, находясь под собой, публичный линк, к которому можно было обращатся обычным селектом, но нельзя было использовать такой селект в функции мною же создаваемой.
4. После мучений, я обратился к фирмачам, они покумекали и сказали, а попробуй создать функцию, только имя ее предвари именем нашего фирменного пользователя.
5. Функция заработала.
Я не темню рассказываю как есть.
...
Рейтинг: 0 / 0
Select из функции не идет
    #32160080
vskv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, что-то мне подсказывает, что твою функцию вызывал кто-то третий, у кого в схеме не хватало синонима на твою функцию...

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


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