Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Не пойму в чём дело  [new]
Truman
Member

Откуда:
Сообщений: 32
CREATE OR REPLACE PROCEDURE test1 (date_in IN NVARCHAR2, rc OUT refcursor)
IS
BEGIN
OPEN rc FOR
SELECT *
FROM udo_vr_transinvcustjconv1
WHERE (t.sdoctype LIKE '%ЧЕК%')
AND t.datopl BETWEEN (TO_DATE ((date_in || ' 00:00:00'),
'dd-mm-yyyy hh24:mi:ss'
)
)
AND (TO_DATE ((date_in || ' 23:59:59'),
'dd-mm-yyyy hh24:mi:ss'
)
);
END test1;

процедурка компайлится, но результатлов работы не видно...
как увидеть данные которыя я выбрал запросом...
udo_vr_transinvcustjconv1 - вьюха
4 фев 08, 10:35    [5239223]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Pir
Member

Откуда: Москва
Сообщений: 872
FROM udo_vr_transinvcustjconv1 t
4 фев 08, 10:38    [5239255]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Pir
Member

Откуда: Москва
Сообщений: 872
refcursor - ваш тип ? или вы хотели написать sys_refcursor ?
4 фев 08, 10:40    [5239268]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Truman
Member

Откуда:
Сообщений: 32
непомагает,говорит что
1/47 PLS-00201: идентификатор 'REFCURSOR' должен быть объявлен

переделываем вот так вот
CREATE OR REPLACE PROCEDURE test1 (date_in IN NVARCHAR2, rc OUT refcursor)
IS
rc refcursor;
BEGIN
OPEN rc FOR
SELECT *
FROM udo_vr_transinvcustjconv1 t
WHERE (t.sdoctype LIKE '%ЧЕК%')
AND t.datopl BETWEEN (TO_DATE ((date_in || ' 00:00:00'),
'dd-mm-yyyy hh24:mi:ss'
)
)
AND (TO_DATE ((date_in || ' 23:59:59'),
'dd-mm-yyyy hh24:mi:ss'
)
);
END test1;
/
один чёрт не пашет...
4 фев 08, 10:42    [5239289]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Madness
Member

Откуда: Москва
Сообщений: 648
Truman
один чёрт не пашет...

Pir
refcursor - ваш тип ? или вы хотели написать sys_refcursor ?
4 фев 08, 10:43    [5239301]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Pir
Member

Откуда: Москва
Сообщений: 872
Truman
непомагает,говорит что
1/47 PLS-00201: идентификатор 'REFCURSOR' должен быть объявлен


читайте дальше )
4 фев 08, 10:44    [5239306]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Truman
Member

Откуда:
Сообщений: 32
ставлю sys_refcursor
получаю:
1/1 PLS-00410: дублирование полей в RECORD,TABLE или в списке аргументов не разрешено
4 фев 08, 10:44    [5239310]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Madness
Member

Откуда: Москва
Сообщений: 648
Truman
ставлю sys_refcursor
получаю:
1/1 PLS-00410: дублирование полей в RECORD,TABLE или в списке аргументов не разрешено

У Вас вовьюхе есть поде date_in, поменяйте имя параметра...
4 фев 08, 10:46    [5239323]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Truman
Member

Откуда:
Сообщений: 32
дело не в параметре а в
CREATE OR REPLACE PROCEDURE test1 (date_in IN NVARCHAR2, rc OUT refcursor)
IS
rc refcursor;
...
rc в двух местах...
убрал из create , скомпилилась, но результат выполнения получить не могу...
4 фев 08, 10:53    [5239390]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Pir
Member

Откуда: Москва
Сообщений: 872
убрали out параметр или из declare ?
как пытаетесь смотреть результат?
4 фев 08, 10:57    [5239420]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Madness
Member

Откуда: Москва
Сообщений: 648
Truman
rc в двух местах...
убрал из create , скомпилилась, но результат выполнения получить не могу...

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> create or replace procedure test (rc out sys_refcursor)
  2  is
  3  begin
  4    open rc for select rownum id from dual connect by level < 10;
  5  end test;
  6  /

Procedure created.

SQL> var cur refcursor
SQL> exec test(:cur)

PL/SQL procedure successfully completed.

SQL> print cur

        ID
----------
         1
         2
         3
         4
         5
         6
         7
         8
         9

9 rows selected.
4 фев 08, 10:57    [5239425]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Truman
Member

Откуда:
Сообщений: 32
ок, спасибки)
запустилась...
получил непонятно что но ща не об этом...
как получить данные в грид на форме?
прост идея вот какая приследуется:
я хочу сделать хранимую процедурку, которая по заданным критериям (в этом случае дата) из вьюхи выбирает данные и отображает их в гриде...
4 фев 08, 11:08    [5239531]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Truman
ок, спасибки)
запустилась...
получил непонятно что но ща не об этом...
как получить данные в грид на форме?
прост идея вот какая приследуется:
я хочу сделать хранимую процедурку, которая по заданным критериям (в этом случае дата) из вьюхи выбирает данные и отображает их в гриде...


Что такое "форма" и что такое "грид"? Или ты хочешь, чтобы по этим словам народ догадался о средстве разработки?
4 фев 08, 11:10    [5239548]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Truman
Member

Откуда:
Сообщений: 32
средство разработки делфискрипт.... :'(
4 фев 08, 11:16    [5239605]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Truman
средство разработки делфискрипт.... :'(


Такого не знаю

А если таки Delphi, дык спроси в соответствующем форуме, как отобразить куросор в гриде...
4 фев 08, 11:22    [5239647]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Truman
Member

Откуда:
Сообщений: 32
лан, как в тоаде посмотреть что выдаёт моя процедурка?
или в PLSQL Developer, не из команндной строки
4 фев 08, 11:57    [5239947]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Pir
Member

Откуда: Москва
Сообщений: 872
Truman
лан, как в тоаде посмотреть что выдаёт моя процедурка?
или в PLSQL Developer, не из команндной строки


в PLSQL Developer запускаете процедуру в тестовом окне и нажимаете на ...
4 фев 08, 12:00    [5239967]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
цикл по курсору и dbms_output.put_line
4 фев 08, 12:01    [5239976]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Truman
Member

Откуда:
Сообщений: 32
неужели нет другого хода кроме как
цикл по курсору и dbms_output.put_line
4 фев 08, 12:17    [5240079]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Truman
Member

Откуда:
Сообщений: 32
просто получается, что пишем процу, дебагим иё, потом половину переделываем и запускаем в работу, нужно мобифицировать - опять через .... переделываем, апдейтимЮ тестим переделываем.... както блин тупо...
4 фев 08, 12:18    [5240095]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Truman
неужели нет другого хода кроме как
цикл по курсору и dbms_output.put_line


Какие ленивые люди
Это быстрее написать, чем задавать вопросы на форуме

CREATE OR REPLACE PROCEDURE test (rc out sys_refcursor)
IS
BEGIN
  OPEN rc FOR select rownum id from dual connect by level < 10;
END;


DECLARE
  Id1  number;

  C1  sys_refcursor;
BEGIN
  Test(C1);
  
  loop
    FETCH C1 INTO Id1;
  
    exit when C1%NOTFOUND;
    
    dbms_output.put_line(Id1);
  end loop;
  
  CLOSE C1;
END;  
Всего и делов
4 фев 08, 12:25    [5240140]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Pir
Member

Откуда: Москва
Сообщений: 872
Truman
неужели нет другого хода кроме как
цикл по курсору и dbms_output.put_line


я же написал как быстро просматривать курсоры в plsql developer. или кнопку с точками напротив курсорной переменной не нашли ?
4 фев 08, 12:49    [5240336]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Truman
Member

Откуда:
Сообщений: 32
не сочтите наглым, но всёже вопрос напрашивается сам собой:
когда нужно вывести число фетч отрабатывает,
как вывести строку?
4 фев 08, 12:50    [5240346]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Truman
не сочтите наглым, но всёже вопрос напрашивается сам собой:
когда нужно вывести число фетч отрабатывает,
как вывести строку?


Попробуй сформулировать еще раз :)
4 фев 08, 12:52    [5240359]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму в чём дело  [new]
Madness
Member

Откуда: Москва
Сообщений: 648
Видимо, твой пример был взят на вооружение "as is":
tru55
Id1 number;
4 фев 08, 12:58    [5240400]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить