Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Crystal Reports и хранимые процедуры Oracle / 13 сообщений из 13, страница 1 из 1
25.05.2005, 09:30
    #33083218
DBDeveloper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Reports и хранимые процедуры Oracle
Как передаются в Кристал данные? Процедура или функция на сервере должна вернуть курсор?
...
Рейтинг: 0 / 0
14.06.2005, 23:28
    #33116705
serg1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Reports и хранимые процедуры Oracle
Была такая инструкция
scr_oracle_stored_procedures.pdf
...
Рейтинг: 0 / 0
21.09.2005, 11:26
    #33280689
Guest2912
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Reports и хранимые процедуры Oracle
На первый же пример из этой доки кристал выдает ошибку:
Query Engine Error: 'ORA-06550:line 1, column 13
PLS-00302:component 'TEST_PROCEDURE' must be declared
PL/SQL Statement ignored'

в чем проблема?
...
Рейтинг: 0 / 0
21.09.2005, 12:06
    #33280836
Прохожий111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Reports и хранимые процедуры Oracle
http://www.sql.ru/forum/actualthread.aspx?tid=218041
...
Рейтинг: 0 / 0
21.09.2005, 12:28
    #33280909
Guest2912
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Reports и хранимые процедуры Oracle
При чем тут это? Сейчас еще следом выдается: 'Details: Fail to execute SQL statement. OCI Call OCI StmtExecute' - сами sql-выражения не выполняются почему-то
...
Рейтинг: 0 / 0
21.09.2005, 13:22
    #33281082
Прохожий111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Reports и хранимые процедуры Oracle
Guest2912На первый же пример из этой доки кристал выдает ошибку:
Query Engine Error: 'ORA-06550:line 1, column 13
PLS-00302:component 'TEST_PROCEDURE' must be declared
PL/SQL Statement ignored'

в чем проблема?

У вас ник DBDeveloper.

PLS-00302 component 'string' must be declared

Cause: In a reference to a component (for example, in the name "A.B", "B" is a component of "A"), the component has not been declared. The component might be misspelled, its declaration might be faulty, or the declaration might be placed incorrectly in the block structure.

Action: Check the spelling and declaration of the component. Also confirm that the declaration is placed correctly in the block structure.
...
Рейтинг: 0 / 0
21.09.2005, 14:13
    #33281268
Guest2912
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Reports и хранимые процедуры Oracle
да вроде все правильно, из этой доки прогнали скрипты:
1. Create a table.
CREATE TABLE Test_Table
(ID number(5),
Firstname varchar2(30),
Lastname varchar2(30),
Birthday date);

2. Insert values into the table.
INSERT INTO Test_Table VALUES
(1, 'Christopher', 'Jones', '01-Nov-70');
INSERT INTO Test_Table VALUES
(2, 'Maria', 'Marshall', '02-Jan-77');
INSERT INTO Test_Table VALUES
(3, 'Jonathan', 'Campbell', '09-Aug-75');
INSERT INTO Test_Table VALUES
(4, 'Julie', 'Gagnon', '23-Dec-72');
INSERT INTO Test_Table VALUES
(5, 'Daemon', 'Thompson', '11-Feb-69');

3. Create the Package.
CREATE OR REPLACE PACKAGE Test_Package
AS TYPE Test_Type IS REF CURSOR RETURN Test_Table%ROWTYPE;
END Test_Package;
/

4. Create the stored procedure.
CREATE OR REPLACE PROCEDURE Test_Procedure (
Test_Cursor IN OUT Test_Package.Test_Type,
Test_Parameter IN Test_Table.ID%TYPE)
AS
BEGIN
OPEN Test_Cursor FOR
SELECT *
FROM Test_Table
WHERE Test_Table.ID = Test_Parameter;
END Test_Procedure;

этот пример во многих местах встречается...
...
Рейтинг: 0 / 0
21.09.2005, 16:19
    #33281856
Прохожий111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Reports и хранимые процедуры Oracle
У Вас ошибки оракловые. Добейтесь коректной отработки процедуры в оракле, после задавайте вопрос по CR.
P.S В Oracle 9.2.0.5 процедура работает без проблем.
...
Рейтинг: 0 / 0
23.09.2005, 11:16
    #33285437
Guest2912
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Reports и хранимые процедуры Oracle
Все нормально в оракле работает:

SQL> set autoprint on
SQL> variable x refcursor
SQL> exec test_procedure(:x, 1)

PL/SQL procedure successfully completed.


ID FIRSTNAME LASTNAME
---------- ------------------------------ ------------------------------
BIRTHDAY
---------
1 Christopher Jones
01-NOV-70
...
Рейтинг: 0 / 0
23.09.2005, 14:00
    #33286040
Прохожий111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Reports и хранимые процедуры Oracle
Ошибка сохраняется?
...
Рейтинг: 0 / 0
23.09.2005, 14:10
    #33286066
Прохожий111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Reports и хранимые процедуры Oracle
Ошибка возникает при вызове процедуры из CR?
...
Рейтинг: 0 / 0
26.09.2005, 11:24
    #33288110
Guest2912
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Reports и хранимые процедуры Oracle
C ошибкой разобрались. Ошибка была по глупости. Кристал вызывает процедуру след. образом: имя_пользователя.test_procedure(). Но с названием "имя_пользователя" уже существовал пэкидж. Из-за этого и был конфликт.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
13.07.2011, 12:50
    #37349545
_Irina_S_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Reports и хранимые процедуры Oracle
Пютаюсь в Crystal Reports XI создать отчет на основе хранимой процедуры Oracle.
Скопировала пример 1, который здесь приведен.
Если запускать процедуру из SQL*Plus в виде:
SET SERVEROUTPUT ON
declare
test_cursor test_package.test_type;
resultset test_cursor%rowtype;
begin
test_procedure(test_cursor, 1);
if not test_cursor%isopen then
dbms_output.put_line('the cursor is not open');
else
dbms_output.put_line('the cursor is open');
end if;
fetch test_cursor into resultset;
while test_cursor%found loop
dbms_output.put_line(resultset.ID);
dbms_output.put_line(resultset.Firstname);
dbms_output.put_line(resultset.Lastname);
dbms_output.put_line(resultset.Birthday);
fetch test_cursor into resultset;
end loop;
end;
Она отрабатывает.

А при попытке добавить процедуру в отчет запрашивается значение только одного параметра (Test_Parametr) и выдается ошибка: Ошибка блока соединения с базой данных ADO Error Code 0x80040e14
ORA-06550. PLS-00306: wrong number or typews of arguments is call to 'Test_Procedure'.

Из Crystal Reports передается команда: Begin "Test_Procedure" (1); end;

Как можно "побороть" данную проблему?
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Crystal Reports и хранимые процедуры Oracle / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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