|
На счет процедуры на PL/SQL
|
|||
---|---|---|---|
#18+
как создать процедуру или функцию на PL/SQL чтобы она возвращала в качестве значения - таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2001, 16:13 |
|
На счет процедуры на PL/SQL
|
|||
---|---|---|---|
#18+
Если под таблицей понимать данные произвольного запроса (а не тип TABLE %) ), то это делается с помощью курсоров: --описание курсорного типа create or replace package Some_Pack as type c_type is ref cursor; end; --данные select'a возвращаются процедурой Proc1 через параметр Param1 create or replace procedure Proc1(Param1 in out Some_Pack.c_type) as begin open Param1 for select * from v$session;--тот самый произвольный запрос end; ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2001, 13:49 |
|
На счет процедуры на PL/SQL
|
|||
---|---|---|---|
#18+
Так то оно так, да вот курсор открытый на сервере останется. А его же нужно закрывать. А вот в чистом виде таблицу возвратить как? если без курсоров? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2001, 08:48 |
|
На счет процедуры на PL/SQL
|
|||
---|---|---|---|
#18+
Если использовать MIcrosoft ODBC Driver for Oracle, то можно написать сле- дующее: Create Package Pack is type MyTab is Table of integer; Procedure Prc (Tb out MyTab); end Pack; Package body Pack is Procedure Prc(Tb out MyTab) is begin ...end; end; И, в SQL-команде набрать: {call Pack.Prc({resultset 100,Tb})} Под C++ Builder такое работает, когда используется ADO с провайдером MSDASQL. HTH, Andrew ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2001, 11:44 |
|
На счет процедуры на PL/SQL
|
|||
---|---|---|---|
#18+
2Arcady: а какой будет код на клиенте? я не могу разобраться как правильно передать параметры вот пример кода на VB Dim con,rs,cmd set con = CreateObject("ADODB.Connection") set rs = CreateObject("ADODB.Recordset") set cmd = CreateObject("ADODB.Command") con.Open "Provider=OraOLEDB.Oracle;Data Source=......." Cmd.ActiveConnection = Con cmd.CommandText = "{call Proc1()}" set rs = cmd.execute В этом случае выдает ошибку Ошибочное число или типы аргументов при обращении к Proc1 Если надо при вызове в cmd создать параметр - то как это правильно сделать Еще в докоментации упоминается cmd.Properties("PLSQLRset") = TRUE, но в этом случае у меня выдается ошибка Item cannot be found in collection ... т.е. нет у меня такого параметра ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2002, 14:51 |
|
|
start [/forum/topic.php?fid=52&gotonew=1&tid=1993252]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 292ms |
total: | 423ms |
0 / 0 |