|
|
|
Передача таблицы в динамический SQL
|
|||
|---|---|---|---|
|
#18+
Ora 9.2.0.2, Win2000. Как можно заставить нечто подобное работать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2003, 10:03 |
|
||
|
Передача таблицы в динамический SQL
|
|||
|---|---|---|---|
|
#18+
Verno, "tbl.extend" govorit, chto razmer stack of object "tbl" nado uvelichit' na 1. t.e. extend - zarezervirovannoe slovo pri ispol'zovanii pointera { ... is table of ... } eto ne obyazatel'no. I gde y tebya opredeleno , chto takoe 'tbl'? I chto ge ty hochesh?? +++ 2 All Konkretnyi vopros vernet conkretnyi otvet. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2003, 10:24 |
|
||
|
Передача таблицы в динамический SQL
|
|||
|---|---|---|---|
|
#18+
Мне нужно передать таблицу в динамический код, заполнить ее там и вернуть ее обратно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2003, 10:48 |
|
||
|
Передача таблицы в динамический SQL
|
|||
|---|---|---|---|
|
#18+
Togda dai primer svoego ".. в динамический код, заполнить ее там ", ne boisya. "Raspal'zovka i gadanie po ryke " v programmirovanii ne privetstvyutsya.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2003, 10:58 |
|
||
|
Передача таблицы в динамический SQL
|
|||
|---|---|---|---|
|
#18+
Подробнее, так подробнее. Есть тул, выполняющий набор тестов по схеме: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Текст процедуры Test, собственно выполняющей тест формируется динамически экспертом, а тул в определенное время вызывает эту процедуру, например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. В теле процедуры должна заполнятся сводная отчетная таблица, которая после выполнения теста отсылается по почте. Вся схема работает отлично, кроме передачи таблицы строк (tblDetails). Ее можно заменить на передачу какого-нибудь varchar2(4000) или clob, но придется переделывать в других местах довольно много работающего кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2003, 11:18 |
|
||
|
Передача таблицы в динамический SQL
|
|||
|---|---|---|---|
|
#18+
create or replace procedure forum_Test ( p_sMode In varchar2 , p_dStrt In date , p_dStop In date , p_sErrLvl in out nocopy varchar2 , p_nErrCode in out nocopy number , p_sErrName in out nocopy varchar2 , p_tblDetails in out nocopy DBMS_SQL.Varchar2S ) is nCnt int; curr_pos Integer; begin select count(*) into nCnt from emp; if nCnt < 50 then p_nErrCode := 1; p_sErrLvl := 'R'; p_sErrName:= 'Low EMP count'; end if; -- ?????? ?????? ???? ?????????? ??????? p_tblDetails ??????? ??????????? curr_pos := p_tblDetails.Count; p_tblDetails(curr_pos + 1) := '?????? ?????? ???? ?????????? ??????? p_tblDetails ??????? ???????????'; end forum_Test; procedure Test_Shell ( p_nTestID integer , p_sMode varchar2 , p_dStrt date , p_dStop date ) is lngFullText long; lngSqlText long; sErrLvl nErrCodeCurr sErrName tblDetails DBMS_SQL.Varchar2S; begin select sql_text into lngSqlText from test where test.id = p_nTestID; lngFullText:= 'declare ' || lngSqlText || 'begin Test( :sMode, :dStrt, :dStop, :sErrLvl, :nErrCode, :sErrName, :tblDetails); end;' ; execute immediate lngFullText using in p_sMode , in p_dStrt , in p_dStop , out sErrLvl , out nErrCodeCurr , out sErrName , out tblDetails ; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2003, 12:09 |
|
||
|
Передача таблицы в динамический SQL
|
|||
|---|---|---|---|
|
#18+
Переделал всё на dbms_sql.varchar2s. Ругается на: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2003, 12:46 |
|
||
|
Передача таблицы в динамический SQL
|
|||
|---|---|---|---|
|
#18+
Sorry, ne proveril srazy... T.k. { As a rule, dynamic SQL does not support PL/SQL-specific types. So, for example, define variables and bind arguments cannot be Booleans or index-by tables. The only exception is that a PL/SQL record can appear in the INTO clause.} to:: A.Create type as object . B. Replace dbms_sql.Varchar2S with this object ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2003, 12:52 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=2783&tid=1990747]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
63ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 270ms |
| total: | 410ms |

| 0 / 0 |
