Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Параметер для процедуры все время в верхнем регистре.
|
|||
|---|---|---|---|
|
#18+
Нужно накатать процедуру DROP TABLE IF EXISTЫ, работает неплохо, только пока имя таблицы в верхнем регистре. Как только есть строчные, то возвращает ошибку: Run: ADMIN.PROCEDURE1(VARCHAR(100), INTEGER) {call ADMIN.PROCEDURE1(?,?)} "TEST.TABLE1" is an undefined name.. SQLCODE=-204, SQLSTATE=42704, DRIVER=4.16.53 Run of routine failed. - Roll back completed successfully. Хотя я передаю как параметер Table1 и что самое забавное, в (SELECT 1 FROM SYSIBM.SYSTABLES WHERE NAME=TNAME...) регистр все еще правильный и запрос находит таблицу, а вот при дропе почему то все уже в верхнем регистре. CREATE PROCEDURE PROCEDURE1 (IN TNAME VARCHAR (100), OUT res INT) BEGIN DECLARE sqlcode INT; DECLARE STMT VARCHAR(1000); SET STMT = 'DROP TABLE TEST.' || TNAME; PREPARE S1 FROM STMT; IF EXISTS (SELECT 1 FROM SYSIBM.SYSTABLES WHERE NAME=TNAME AND CREATOR='TEST' AND TYPE='T') THEN EXECUTE S1; SET res = sqlcode; ELSE SET res = 100; END IF; END ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 00:52 |
|
||
|
Параметер для процедуры все время в верхнем регистре.
|
|||
|---|---|---|---|
|
#18+
webaib, Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 09:42 |
|
||
|
Параметер для процедуры все время в верхнем регистре.
|
|||
|---|---|---|---|
|
#18+
Мерсите Вас ужасненько, все работает! Только возник еще один небольшой вопрос, в IBM Data Studio я могу спокойно выполнять SQLQuery: CALL DROP_TABLE_IF_EXISTS ('TestMyTable', ?); Но не понятно, как получить и использовать дальше OUT Parameter? В SQL Explorer при том же запросе я получаю sqlcode=-313 sqlstate=07004? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 13:14 |
|
||
|
Параметер для процедуры все время в верхнем регистре.
|
|||
|---|---|---|---|
|
#18+
webaibТолько возник еще один небольшой вопрос, в IBM Data Studio я могу спокойно выполнять SQLQuery: CALL DROP_TABLE_IF_EXISTS ('TestMyTable', ?); Но не понятно, как получить и использовать дальше OUT Parameter? В SQL Explorer при том же запросе я получаю sqlcode=-313 sqlstate=07004?Вы можете использовать этот параметр в вызывающей пропроцедуру программе/коде. Как именно - записит от того, откуда вызываете. Из sql/pl можно из compound statement: Код: sql 1. 2. 3. 4. 5. 6. 7. Ваш SQL Explorer надо как-то научить правильно работать с параметрами процедур, если это возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 18:30 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=38473634&tid=1601244]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 293ms |
| total: | 449ms |

| 0 / 0 |
