Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 8 [9] 10 11 12   вперед  Ctrl      все
 Re: ORA-01031: insufficient privileges  [new]
Katsy
Member

Откуда:
Сообщений: 313
Получилось так:
CREATE OR REPLACE PACKAGE eskrasporgpkg
AS
   FUNCTION set_params (feeyear NUMBER, orgname VARCHAR2, productname VARCHAR2)
      RETURN VARCHAR2;

   FUNCTION get_feeyear
      RETURN NUMBER;

   FUNCTION get_orgname
      RETURN VARCHAR2;

   FUNCTION get_productname
      RETURN VARCHAR2;
END eskrasporgpkg;
/

CREATE OR REPLACE PACKAGE BODY eskrasporgpkg
AS
   FUNCTION set_params (feeyear NUMBER, orgname VARCHAR2, productname VARCHAR2)
      RETURN VARCHAR2
   IS
   BEGIN
      DBMS_SESSION.set_context ('clientcontext', 'feeYear', feeyear);
      DBMS_SESSION.set_context ('clientcontext', 'orgName', orgname);
      DBMS_SESSION.set_context ('clientcontext', 'productName', productname);
      RETURN 1;
   END set_params;

   FUNCTION get_feeyear
      RETURN NUMBER
   IS
   BEGIN
      RETURN SYS_CONTEXT ('clientcontext', 'feeYear');
   END get_feeyear;

   FUNCTION get_orgname
      RETURN VARCHAR2
   IS
   BEGIN
      RETURN SYS_CONTEXT ('clientcontext', 'orgName');
   END get_orgname;

   FUNCTION get_productname
      RETURN VARCHAR2
   IS
   BEGIN
      RETURN SYS_CONTEXT ('clientcontext', 'productName');
   END get_productname;
END eskrasporgpkg;
/

GRANT EXECUTE ON eskrasporgpkg TO yakunina;
Вью:
ALTER VIEW ows.eskrasporgproduct compile
AS
   SELECT   cl.last_nam last_name, cl.first_nam first_name,
            cl.father_s_nam father_s_name,
               SUBSTR (ac.contract_number, 1, 6)
            || '******'
            || SUBSTR (ac.contract_number, 12, 4) contract_number,
            ovp.fee_year, ovp.curr
       FROM ows.client cl,
            ows.service s,
            ows.trans_subtype ts,
            ows.trans_type tt,
            ows.acnt_contract acc,
            ows.contr_status cs,
            ows.acnt_contract ac,
            ows.f_i fi,
            ows.contr_subtype cst,
            ows.opt_v_product ovp,
            ows.appl_product ap,
            ows.serv_pack sp,
            ows.opt_organisation oo
      WHERE fi.ID = ap.f_i
        AND fi.amnd_state = 'A'
        AND ap.pcat = 'C'
        AND ap.con_cat = 'C'
        AND ap.amnd_state = 'A'
        AND ac.product = ap.internal_code
        AND ac.amnd_state = 'A'
        AND ac.con_cat = 'C'
        AND ac.ccat = 'P'
        AND TO_DATE (ac.card_expire, 'YYMM') > SYSDATE - 30
        AND SUBSTR (ac.card_expire, 3, 2) =
                                    TO_CHAR (TRUNC (SYSDATE - 30, 'MM'), 'MM')
        AND cs.ID = ac.contr_status
        AND cs.amnd_state = 'A'
        AND cs.external_code NOT IN ('14', 'CB', 'CT', 'CU')
        AND cl.ID = ac.client__id
        AND cl.amnd_state = 'A'
        AND ac.contr_subtype__id = cst.ID
        AND cst.amnd_state = 'A'
        AND   MONTHS_BETWEEN (TO_DATE (ac.card_expire, 'YYMM'),
                              TRUNC (SYSDATE - 30, 'MM')
                             )
            / 12 < cst.expire_for_new / 12
        AND   MONTHS_BETWEEN (TO_DATE (ac.card_expire, 'YYMM'),
                              TRUNC (SYSDATE - 30, 'MM')
                             )
            / 12 > 0
        AND acc.ID = ac.acnt_contract__oid
        AND acc.amnd_state = 'A'
        AND ap.internal_code = ovp.appl_product
        AND ovp.amnd_state = 'A'
        AND sp.ID = ap.service_pack
        AND sp.amnd_state = 'A'
        AND sp.NAME LIKE '%-ZP%'
        AND sp.NAME NOT LIKE '%-ZP7%'
        AND s.serv_pack__oid = ap.service_pack
        AND s.amnd_state = 'A'
        AND s.trans_type_t = ts.ID
        AND ts.amnd_state = 'A'
        AND ts.trans_type__oid = tt.ID
        AND tt.amnd_state = 'A'
        AND tt.NAME = 'Card Fee Yearly'
        AND s.fee_base < 0.01
        AND ovp.fee_year = ows.eskrasporgpkg.get_feeyear
        AND ovp.orgcode = oo.code
        AND oo.amnd_state = 'A'
        AND oo.NAME = ows.eskrasporgpkg.get_orgname
        AND ap.NAME = ows.eskrasporgpkg.get_productname
Вызываю на выполнение из Ворда:
        rst.Open "select ows.EskRaspOrgPkg.set_params(" + CStr(arrayRows(3, intLoopRow)) + ", " + _
        CStr(arrayRows(6, intLoopRow)) + ", " + CStr(arrayRows(12, intLoopRow)) + _
        ") from dual ORDER BY last_name, first_name, father_s_name", cnn
Получаю ошибку:
missing right parenthesis
5 июл 10, 06:36    [9048024]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Katsy
Member

Откуда:
Сообщений: 313
Вячеслав Любомудров,

Если после гранта поставить слэш, то:
 (Error): ORA-00900: invalid SQL statement
5 июл 10, 06:38    [9048025]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Bfink
Member

Откуда: Москва
Сообщений: 2797
Katsy,

Пример неудачный, сначала он хотел изменять формулы статистики, потом перехотел и решил изменять интервал. А это можно сделать значительно проще. Если у Вас тоже простая задача, не надо ее решать сложно.
5 июл 10, 06:39    [9048026]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Katsy
Member

Откуда:
Сообщений: 313
select ows.EskRaspOrgPkg.set_params(1,'Org','Product') from dual 
работает
5 июл 10, 06:42    [9048028]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Katsy
Member

Откуда:
Сообщений: 313
Bfink,

у меня задача - три параметра передать во вью из Ворда
5 июл 10, 06:43    [9048029]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Katsy
        ") from >>>dual<<< ORDER BY last_name, first_name, father_s_name", cnn
Не вникая в код -- это шутка такая?
Брать одну строку и сортировать неизвестно по чему
5 июл 10, 06:43    [9048030]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Katsy
Member

Откуда:
Сообщений: 313
        'Запрашиваем данные из базы
        rst.Open "select ows.EskRaspOrgPkg.set_params(" + CStr(arrayRows(3, intLoopRow)) + ", '" + _
        CStr(arrayRows(6, intLoopRow)) + "', '" + CStr(arrayRows(12, intLoopRow)) + _
        "') from dual", cnn
вот так решен косяк с Вордом
5 июл 10, 06:46    [9048034]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Katsy
Member

Откуда:
Сообщений: 313
Вячеслав Любомудров,

сортировку со вью перенесла
5 июл 10, 06:47    [9048037]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Katsy
Вячеслав Любомудров,

Если после гранта поставить слэш, то:
 (Error): ORA-00900: invalid SQL statement
Если внимательно приглядется, то точку с запятой я не ставил после данного оператора :)
5 июл 10, 06:49    [9048038]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Katsy
Member

Откуда:
Сообщений: 313
Вячеслав Любомудров,

Почему при попытке выполнить под моим юзером строку:
select * from ows.EskRaspMain
возникает ошибка:
(Error): ORA-00942: table or view does not exist
Под юзером ows выборка делается без проблем
5 июл 10, 06:51    [9048040]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10045
Katsy
Почему при попытке выполнить под моим юзером строку:


Maybe because you did not grant select on the view to "моим юзером".

SY.
5 июл 10, 06:53    [9048043]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Katsy
Member

Откуда:
Сообщений: 313
Вячеслав Любомудров,

проблема решена, у меня гранта на эту вью не было, создала. ещё бы теперь знать всех юзеров, которым она понадобится...
5 июл 10, 06:54    [9048045]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Еще раз хочу напомнить, что в данной схеме нежелательно создавать объекты
А вообще есть права, синонимы...
5 июл 10, 06:55    [9048046]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
wurdu
Member

Откуда: Владивосток
Сообщений: 4441
По мне так, Katsy надо запретить программировать на PL/SQL в целях изучения самых базовых вещей SQL. Запросы там, переменные подстановки. А то решать задачу выборки из view по заданным условиям через контексты наверное не надо...
5 июл 10, 06:55    [9048047]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Katsy
Member

Откуда:
Сообщений: 313
wurdu,

а как надо?
5 июл 10, 06:58    [9048048]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Филарет
Member

Откуда:
Сообщений: 539
wurdu
По мне так, Katsy надо запретить программировать на PL/SQL...

Ты не понял. ее по Славиной просьбе взяли, а то он там совсем от скуки помирал. Вот, развлечение теперь будет.
5 июл 10, 06:59    [9048050]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Спасибо, я лучше со скуки сдохну
Надеюсь таки до боевого кода не дойдет
5 июл 10, 07:02    [9048052]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
wurdu
Member

Откуда: Владивосток
Сообщений: 4441
Katsy
wurdu,

а как надо?
Да как обычно, select .. from ows.eskrasporgproduct where fee_year = :1 and NAME=:2 and ... order by ...
5 июл 10, 07:02    [9048053]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Katsy
Member

Откуда:
Сообщений: 313
wurdu,

Вы уверены, что так можно?
select * from ows.EskRaspOrgProduct 
where ovp.fee_year = :feeYear 
and oo.NAME = :orgName 
and ap.NAME = :productName
возвращает ошибку:
(Error): ORA-00904: "AP"."NAME": invalid identifier
5 июл 10, 08:49    [9048189]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Завязывай народ смешить
5 июл 10, 08:53    [9048204]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Katsy
Member

Откуда:
Сообщений: 313
Вячеслав Любомудров,

как мне посоветовали, так и пишу
5 июл 10, 08:59    [9048221]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
Katsy
Вячеслав Любомудров,

как мне посоветовали, так и пишу

Чудо милое, ну ты хоть подумай, ЧТО тебе показали, а не бросайся тупо копировать код.
select * from ows.EskRaspOrgProduct  
where ovp.fee_year = :feeYear 
and oo.NAME = :orgName 
and ap.NAME = :productName
Ну вот зачем тут алиасы, ежели они нигде не обозначены?
5 июл 10, 09:03    [9048226]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
Katsy,

И прочти ты уже концепты и sql references, а то позоришься на всю страну.

З.Ы, Слав, сочувствую.
5 июл 10, 09:04    [9048237]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
Bfink
Member

Откуда: Москва
Сообщений: 2797
wurdu
Да как обычно, select .. from ows.eskrasporgproduct where fee_year = :1 and NAME=:2 and ... order by ...


env
Katsy
Вячеслав Любомудров,

как мне посоветовали, так и пишу

Чудо милое, ну ты хоть подумай, ЧТО тебе показали, а не бросайся тупо копировать код.
select * from ows.EskRaspOrgProduct  
where ovp.fee_year = :feeYear 
and oo.NAME = :orgName 
and ap.NAME = :productName
Ну вот зачем тут алиасы, ежели они нигде не обозначены?


Повнимательней! Она код не копировала, а дорабатывала!
5 июл 10, 09:05    [9048240]     Ответить | Цитировать Сообщить модератору
 Re: ORA-01031: insufficient privileges  [new]
wurdu
Member

Откуда: Владивосток
Сообщений: 4441
env
Katsy
Вячеслав Любомудров,

как мне посоветовали, так и пишу

Чудо милое, ну ты хоть подумай, ЧТО тебе показали, а не бросайся тупо копировать код.
select * from ows.EskRaspOrgProduct  
where ovp.fee_year = :feeYear 
and oo.NAME = :orgName 
and ap.NAME = :productName
Ну вот зачем тут алиасы, ежели они нигде не обозначены?
На следующем этапе надо будет объяснить что oo.NAME, ap.NAME тоже надо бы включить во view, потом что в запросе к view не обязательно использовать *.
5 июл 10, 09:07    [9048243]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 8 [9] 10 11 12   вперед  Ctrl      все
Все форумы / Oracle Ответить