Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 dbms_pipe в пакете ругается  [new]
На новеньких
Guest
Подскажите, пожалуйста, в чем проблема?
Ситуация такая: создаю пакет, в нем хочу использовать функции пакета dbms_pipe.
Но компилятор ругается PLS-00201: identifier 'string' must be declared.
Уже выдал себе все системные привелегии - не помогает.
В чем прикол?
4 окт 07, 14:03    [4755033]     Ответить | Цитировать Сообщить модератору
 Re: dbms_pipe в пакете ругается  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
На новеньких
Подскажите, пожалуйста, в чем проблема?
Ситуация такая: создаю пакет, в нем хочу использовать функции пакета dbms_pipe.
Но компилятор ругается PLS-00201: identifier 'string' must be declared.
Уже выдал себе все системные привелегии - не помогает.
В чем прикол?
Вполне себе синтаксис (без всякого отношения к dbms_pipe).
Переменную не объявили
4 окт 07, 14:05    [4755049]     Ответить | Цитировать Сообщить модератору
 Re: dbms_pipe в пакете ругается  [new]
Elic
Member

Откуда:
Сообщений: 29977
RTFM ТОП №4
4 окт 07, 14:06    [4755057]     Ответить | Цитировать Сообщить модератору
 Re: dbms_pipe в пакете ругается  [new]
На новеньких
Guest
Вот такая функция в пакете
  function GetPipeNameBySession return VARCHAR2 is
    vPipeName VARCHAR2(32) := '';
  begin
    vPipeName := DBMS_PIPE.unique_session_name();
    return(vPipeName);
  end;
ругается именно на DBMS_PIPE.
Ничего не понимаю. Посмотрел синонимы - в public на пакет имеется.
В анонимном блоке тот же код выполняется.
Что еще можно посмотреть?
4 окт 07, 14:10    [4755081]     Ответить | Цитировать Сообщить модератору
 Re: dbms_pipe в пакете ругается  [new]
Дубовая голова
Member [заблокирован]

Откуда: с цепи сорвался
Сообщений: 1821
На новеньких
Ничего не понимаю...В анонимном блоке тот же код выполняется.
Что еще можно посмотреть?


Understanding of Invoker and Definer Rights
4 окт 07, 14:32    [4755257]     Ответить | Цитировать Сообщить модератору
 Re: dbms_pipe в пакете ругается  [new]
На новеньких
Guest
Спасибо. Попробовал с AUTHID CURRENT_USER, но это не помагает.
Обнаружил, что у пакета dbms_output есть грантовка на public, а у dbms_pipe нет.
Это у меня криво встало или у всех так?
4 окт 07, 14:59    [4755489]     Ответить | Цитировать Сообщить модератору
 Re: dbms_pipe в пакете ругается  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
На новеньких
Спасибо. Попробовал с AUTHID CURRENT_USER, но это не помагает.
Обнаружил, что у пакета dbms_output есть грантовка на public, а у dbms_pipe нет.
Это у меня криво встало или у всех так?

Это так и д.б. по-умолчанию.
Покажите таки, что делаете.
Стартовый пост такой, что не верю..
4 окт 07, 15:06    [4755530]     Ответить | Цитировать Сообщить модератору
 Re: dbms_pipe в пакете ругается  [new]
Elic
Member

Откуда:
Сообщений: 29977
На новеньких
Обнаружил
Разуй глаза
4 окт 07, 15:13    [4755585]     Ответить | Цитировать Сообщить модератору
 Re: dbms_pipe в пакете ругается  [new]
На новеньких
Guest
Вот сокращенная версия пакета.
create or replace package Progress is
  function GetPipeNameBySession return VARCHAR2;
end Progress;

create or replace package body Progress is
  -- Private variable declarations
  vPipeName VARCHAR2(32) := '';

  -- Function and procedure implementations
  function GetPipeNameBySession return VARCHAR2 is
  begin
    vPipeName := DBMS_PIPE.unique_session_name();
    return(vPipeName);
  end;

begin
  -- Initialization
  null;
end Progress;
Компилируюсь под 10-ой. На себя сделал GRANT ALL PRIVILEGES.
Выдает ошибку - PLS-00201: identifier 'DBMS_PIPE' must be declared
Зашел под sys, выдал привелегии для DBMS_PIPE на PUBLIC, тогда скомпилировался.
4 окт 07, 15:18    [4755621]     Ответить | Цитировать Сообщить модератору
 Re: dbms_pipe в пакете ругается  [new]
На новеньких
Guest
Elic
На новеньких
Обнаружил
Разуй глаза


Да, но dbms_output используется свободно в любых пакетах, и не надо себе выдавать права на него.
4 окт 07, 15:22    [4755660]     Ответить | Цитировать Сообщить модератору
 Re: dbms_pipe в пакете ругается  [new]
Elic
Member

Откуда:
Сообщений: 29977
На новеньких
но dbms_output используется свободно в любых пакетах, и не надо себе выдавать права на него.
Совсем логика с памятью отсутствуют?
На новеньких
у пакета dbms_output есть грантовка на public, а у dbms_pipe нет.
4 окт 07, 15:30    [4755723]     Ответить | Цитировать Сообщить модератору
 Re: dbms_pipe в пакете ругается  [new]
Дубовая голова
Member [заблокирован]

Откуда: с цепи сорвался
Сообщений: 1821
На новеньких
Спасибо. Попробовал с AUTHID CURRENT_USER, но это не помагает.


"Грамота - опаснейшее оружие в неумелых руках..." (c)

Речь шла о том какие привилегии и каким образом должны выдаваться.
4 окт 07, 15:37    [4755775]     Ответить | Цитировать Сообщить модератору
 Re: dbms_pipe в пакете ругается  [new]
На новеньких
Guest
Спасибо всем, вроде разобрался.
Только странно, что на dbms_pipe нет сразу грантовки, как на dbms_output.
Это же стандартный пакет.
4 окт 07, 16:23    [4756129]     Ответить | Цитировать Сообщить модератору
 Re: dbms_pipe в пакете ругается  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
На новеньких
Спасибо всем, вроде разобрался.
Только странно, что на dbms_pipe нет сразу грантовки, как на dbms_output.
Это же стандартный пакет.

Если что тут и странно, так имхо, этот ваш вопрос. :)
Учите матчасть таки. Ну и еще можно пофилософффствовать на тему
функционал и безопасность
4 окт 07, 16:31    [4756189]     Ответить | Цитировать Сообщить модератору
 Re: dbms_pipe в пакете ругается  [new]
Elic
Member

Откуда:
Сообщений: 29977
На новеньких
Только странно, что на dbms_pipe нет сразу грантовки, как на dbms_output.
Это же стандартный пакет.
output-ом нельзя навредить другим сессиям, а pipe-ом - можно. Вот поэтому.
4 окт 07, 16:35    [4756219]     Ответить | Цитировать Сообщить модератору
 Re: dbms_pipe в пакете ругается  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Elic
output-ом нельзя навредить другим сессиям, а pipe-ом - можно. Вот поэтому.

с 10gR2 - это тоже (уже:) открытый вопрос ;)
4 окт 07, 16:40    [4756261]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить