|
|
|
EXECUTE IMMEDIATE proc и in out переменные
|
|||
|---|---|---|---|
|
#18+
Есть процедура proc( id in number, retrn out number ); Конструкция EXECUTE IMMEDIATE "proc(1);" не подходит, т. к. выдается ошибка wrong types or numbers. Как обработать uot переменную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 17:06 |
|
||
|
EXECUTE IMMEDIATE proc и in out переменные
|
|||
|---|---|---|---|
|
#18+
Пишите наверно сюда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 17:07 |
|
||
|
EXECUTE IMMEDIATE proc и in out переменные
|
|||
|---|---|---|---|
|
#18+
JUNIORikЕсть процедура proc( id in number, retrn out number ); Конструкция EXECUTE IMMEDIATE "proc(1);" не подходит, т. к. выдается ошибка wrong types or numbers. Как обработать uot переменную. Есть причина, по которой вы не используете RPC? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 17:23 |
|
||
|
EXECUTE IMMEDIATE proc и in out переменные
|
|||
|---|---|---|---|
|
#18+
PL99Есть причина, по которой вы не используете RPC? Да, есть. Если вы работали с Oracle , то знаете, что есть такие коллекции. И вот такую коллекцию я формирую на стороне клиента и передаю параметром в процедуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 17:33 |
|
||
|
EXECUTE IMMEDIATE proc и in out переменные
|
|||
|---|---|---|---|
|
#18+
JUNIORik PL99Есть причина, по которой вы не используете RPC? Да, есть. Если вы работали с Oracle , то знаете, что есть такие коллекции. И вот такую коллекцию я формирую на стороне клиента и передаю параметром в процедуру.Не вижу связи. Приведите, хотя бы, спецификацию функции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 13:37 |
|
||
|
EXECUTE IMMEDIATE proc и in out переменные
|
|||
|---|---|---|---|
|
#18+
оЙ, ЕНТЕР НАЖАЛА В базе Код: plaintext 1. 2. 3. На клиенте (очевидно, что на клиенте такого типа tab_rec нет) используем execute immediate. ls_sql = "DECLARE "; ls_sql = ls_sql + "type tab_rec IS table of varchar(15); "; ls_sql = ls_sql + "in_tab tab_rec; "; ls_sql = ls_sql + "out_parm integer; "; ls_sql = ls_sql + "BEGIN "; ls_sql = ls_sql + "proc(in_tab, out_parm); "; ls_sql = ls_sql + "END; "; EXECUTE IMMEDIATE ls_sql; Вопрос как обработать out_parm? EXECUTE IMMEDIATE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 15:07 |
|
||
|
EXECUTE IMMEDIATE proc и in out переменные
|
|||
|---|---|---|---|
|
#18+
JUNIORik... На клиенте (очевидно, что на клиенте такого типа tab_rec нет) используем execute immediate. ... хм... круто. Код: plaintext 1. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 17:00 |
|
||
|
EXECUTE IMMEDIATE proc и in out переменные
|
|||
|---|---|---|---|
|
#18+
Что-то похожее обсуждалось ----------------------------------------------------------------------------- Главная деталь любой машины - голова ее владельца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 17:02 |
|
||
|
EXECUTE IMMEDIATE proc и in out переменные
|
|||
|---|---|---|---|
|
#18+
PL99//объявление subroutine myProcedure (string in_tab[], ref integer out_parm) RPCFUNC ALIAS FOR "myOwner.myProcedure" На ORACLE так нельзя писать, если я не права киньте в меня камень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 18:32 |
|
||
|
EXECUTE IMMEDIATE proc и in out переменные
|
|||
|---|---|---|---|
|
#18+
Ну, я в смысле что Oracle не воспримет массив (string in_tab[]). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 18:37 |
|
||
|
EXECUTE IMMEDIATE proc и in out переменные
|
|||
|---|---|---|---|
|
#18+
пробуй к своему ls_sql добавить ls_sql += 'select out_parm;' и запускать через курсор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 18:58 |
|
||
|
EXECUTE IMMEDIATE proc и in out переменные
|
|||
|---|---|---|---|
|
#18+
JUNIORik PL99//объявление subroutine myProcedure (string in_tab[], ref integer out_parm) RPCFUNC ALIAS FOR "myOwner.myProcedure" На ORACLE так нельзя писать, если я не права киньте в меня камень.Вы пробовали? Получили ошибку? Или просто Вам так кажется? На всякий случай, все давно придумано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2008, 13:12 |
|
||
|
EXECUTE IMMEDIATE proc и in out переменные
|
|||
|---|---|---|---|
|
#18+
PL99 JUNIORik PL99//объявление subroutine myProcedure (string in_tab[], ref integer out_parm) RPCFUNC ALIAS FOR "myOwner.myProcedure" На ORACLE так нельзя писать, если я не права киньте в меня камень.Вы пробовали? Получили ошибку? Или просто Вам так кажется? На всякий случай, все давно придумано И думать нечего - не работает. Так можно писать только если процедура ничего не возвращает. И в примерах по ссылке этой ситуации нет. В хелпе есть топик про работу с процедурами которые имееют out аргументы. С такой процедурой надо работать как с курсором. Даешь declare, затем execute, затем fetch into, после close. Чтобы все было чисто надо расставить аргументы процедуры так, чтобы все out были в конце. В declare их не пишешь, а в fetch будут только они. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2008, 15:07 |
|
||
|
EXECUTE IMMEDIATE proc и in out переменные
|
|||
|---|---|---|---|
|
#18+
gust-dustИ думать нечего - не работает. Я не поленился написать пример Oracle: Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. PB: Код: plaintext Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2008, 20:17 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=35309213&tid=1336676]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 174ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...