|
|
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
AIZТеперь совсем не понятно, почему не datetime ldt_sysdate SELECT SYSDATE into :ldt_sysdate FROM DUAL; как предлагал PL99? Сделаю. Просто начальный вариант не мой... Других "спецов". Но в чем проблема решительно не понимаю. Данный скрипт пробовал, результат тот же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 17:40 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
maxim566 AIZА что делается в системе (в текущем состоянии) ДО SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd') into :ls_sysdate_date FROM DUAL; Если этот скрипт от PL99 работает стабильно сам по себе, значит что-то другое гадит ДО того как! Дело в том что качественно все проследить и посмотреть очень сложно, т.к. процесс (в процессе которого ;-) вызывается скрипт с этим запросом, и возникает такой результат) очень громоздкий и мало того работает во многопоточном режими. Т.е. дебаггер отпадает.Многопоточный - это именно многопоточный? Или речь идет про асинхронные обращения к БД? SQLErrText, в котором содержится "f_env_duration_to_string.fun" чем генерируется? Там идет что-нибудь, вроде Код: plaintext В этом случае, AFAIK, в SQLErrText должно быть нечто вроде "ORA-20001 f_env_duration_to_string.fun" и соответствующий номер ошибки в SQLDbCode. Все потоки работают с одним объектом транзакций и это SQLCA? Чего-то ты темнишь :-)) Если отладчиком пользоваться нельзя, напиши функцию логирования и пиши отладочную информацию в файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 18:00 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
А никто из "спецов" не блокирует DUAL примерно так: Код: plaintext На соседней ветке недавно такое обсуждалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 07:38 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
Многопоточный - это именно многопоточный? Или речь идет про асинхронные обращения к БД? SQLErrText, в котором содержится "f_env_duration_to_string.fun" чем генерируется? Там идет что-нибудь, вроде Код: plaintext В этом случае, AFAIK, в SQLErrText должно быть нечто вроде "ORA-20001 f_env_duration_to_string.fun" и соответствующий номер ошибки в SQLDbCode. Все потоки работают с одним объектом транзакций и это SQLCA? Чего-то ты темнишь :-)) Если отладчиком пользоваться нельзя, напиши функцию логирования и пиши отладочную информацию в файл. Программка производит некоторые экспорт данных из одной системы в другую, и может одновременно экспортировать несколько наборов данных, при этом, позволяя пользователю работать с интерфейсом. В этом смысле многопоточная. Для транзакций используется собственный объект. Чем генерируется такой SQLERRTEXT я без понятия, но он такой. Судя по всему он связан с моей глобальной функцией 'f_env_duration_to_string() но почему она вдруг вызывается, я без понятия... ;-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 12:11 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
Читал я этот топик и не выдержал :)) Возник такой вопрос: можно все-таки выдать нам текст ошибки или так и будем в угадайку играть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 12:12 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
Геннадич А никто из "спецов" не блокирует DUAL примерно так: В Оракле нельзя заблокировать таблицу по чтению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 12:13 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
Попробуйте (сделав бэкап) провести оптимизацию всех библиотек с последующим full rebuild. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 12:18 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyЧитал я этот топик и не выдержал :)) Возник такой вопрос: можно все-таки выдать нам текст ошибки или так и будем в угадайку играть? Можно, смотря что ты имеешь ввиду. Еще раз - ошибка в том что с помощью вышеуказанного запроса, возвращается вместо даты пустое значение. При этом, в свойстве SQLERRTEXT соответствующей транзакции лежит следующая строчка: "f_env_duration_to_string.fun", а SQLERRCode = -1. Вот такие дела... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 12:18 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
ГеннадичА никто из "спецов" не блокирует DUAL примерно так: Код: plaintext На соседней ветке недавно такое обсуждалось. Нет такого там нету... ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 12:20 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
Использование драйвера O73 (как советовали) что-то меняет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 12:26 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyИспользование драйвера O73 (как советовали) что-то меняет? Поподробней, если можно. К тому же боюсь для "спецов" использование конкретного драйвера важно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 12:47 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
Понял, что проблема кроется в многопоточности. В однопоточном режиме все нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 13:02 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
maxim566Для транзакций используется собственный объект. Я пока просто спросил используется ли для всех обращений к базе один единственный глобальный объект транзакций или в каких-то случаях создаются дополнительные коннекты? Особенно в свете maxim566Программка производит некоторые экспорт данных из одной системы в другую. Системы на одном сервере живут или на разных? maxim566Чем генерируется такой SQLERRTEXT я без понятия, но он такой. Судя по всему он связан с моей глобальной функцией 'f_env_duration_to_string() но почему она вдруг вызывается, я без понятия... ;-(Вы, что, простите за прямоту, намекаете, что эта самая функция не серверная, а клиентская? Кто-то напрямую пишет нечто вроде SQLCA.SQLErrText="f_env_duration_to_string.fun"? Участники форума заинтригованы :-)) Ктати, про SQLDBCode мы до сих пор ничего не знаем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 13:53 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
PL99 maxim566Для транзакций используется собственный объект. Я пока просто спросил используется ли для всех обращений к базе один единственный глобальный объект транзакций или в каких-то случаях создаются дополнительные коннекты? Особенно в свете maxim566Программка производит некоторые экспорт данных из одной системы в другую. Системы на одном сервере живут или на разных? Могут быть на разных. Сейчас на одном. maxim566Чем генерируется такой SQLERRTEXT я без понятия, но он такой. Судя по всему он связан с моей глобальной функцией 'f_env_duration_to_string() но почему она вдруг вызывается, я без понятия... ;-(Вы, что, простите за прямоту, намекаете, что эта самая функция не серверная, а клиентская? Кто-то напрямую пишет нечто вроде SQLCA.SQLErrText="f_env_duration_to_string.fun"? Участники форума заинтригованы :-)) Думаю что такой фигни не происходит. код по выводу SQLErrText такой MessageBox("", sqlca_dwh.SQLErrText) В боксе сами понимаете что... Почему в SQLных ошибках затясалась ссылка на функцию я в шоке... Ктати, про SQLDBCode мы до сих пор ничего не знаем... Посмотрю. Но теперь стало понятно что дело видимо в конекционном объекте. Так как в одном потоке все это работает прилично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 14:00 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
PS: maxim566 Anatoly MoskovskyЧитал я этот топик и не выдержал :)) Возник такой вопрос: можно все-таки выдать нам текст ошибки или так и будем в угадайку играть? Можно, смотря что ты имеешь ввиду. Еще раз - ошибка в том что с помощью вышеуказанного запроса, возвращается вместо даты пустое значение. При этом, в свойстве SQLERRTEXT соответствующей транзакции лежит следующая строчка: "f_env_duration_to_string.fun", а SQLERRCode = -1. Вот такие дела...О! Можно сделать вывод, что transaction object не один... Возвращаясь к исходному посту, maxim566Я использую Oracle с помощью Power Builder. Иногда простейший запрос текущего времени SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd') into :ls_sysdate_date FROM DUAL; возвращает пустое значение. Почему так? Это проблема Oracle или нет?видим, что попытка обращения к серверу идет через SQLCA. Вы уверены, что в момент обращения один из параллельных потоков не портит его? Присоединяюсь к Anatoly Moskovsky авторможно все-таки выдать нам текст ошибки или так и будем в угадайку играть? Hint: Текст ошибки - это строка, содержащаяся в переменной SQLErrText того объекта транзакции, с помощью которого вы обращались к серверу БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 14:02 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
2 maxim566. Эту ссылку Филипп уже приводил, но тем не менее Как правильно задавать вопросы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 14:06 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
И, все-таки, SQLDBCode какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 14:33 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
AIZИ, все-таки, SQLDBCode какой? Так я пока разбираюсь с тем какой транзакцией пользуется этот запрос. Тогда смогу понять точно "сообщения об ошибках" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 14:41 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
Насколько я помню в каждом потоке надо создавать свой объект транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 14:48 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyНасколько я помню в каждом потоке надо создавать свой объект транзакции. Да он создается отдельно. P.S. Всем спасибо. Почитал полезный мануал про то как задавать вопросы. Проблему решу следующим образом - получать время буду средствами Power Builder, ибо большой проблемы в этом не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 14:51 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
Только учти, если софт не на сервере работает, будет дата и время локальной станции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 14:55 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
Дело спасла собственноручно написанная копия "спецовской" функции в правильном месте, с учетом правильной транзакции. И как я сразу не догадался... Всем еще раз спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 14:59 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
Вообще если говорить о строке "f_env_duration_to_string.fun", то это ссылка на объектный(откомпилированный) код ф-и f_env_duration_to_string, который хранится в PBL/PBD под таким именем. Очевидно что это просто мусор. Обычно от этого помогает оптимизация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 15:01 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
Раз уж один вопрос отпал, может кто-нибудь знает что делать с этим: http://www.sql.ru/forum/actualthread.aspx?tid=201733 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 15:01 |
|
||
|
трабл с запросом времени
|
|||
|---|---|---|---|
|
#18+
Есть небольшие познания по данному вопросу формат параметра sysdate в Оracle устанавливается в региональных настройках самого Oracle, а дату он не возвращает потому, что на компьютере клиента стоят свои региональные настройки (сам сталкивался - знаю о чем говорю), вернее возвращает через раз, а разговоры о блокировке таблице таблицы DUAL, это по-крайней мере звучит странно.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 18:01 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=33175851&tid=1338216]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
85ms |
get tp. blocked users: |
2ms |
| others: | 207ms |
| total: | 393ms |

| 0 / 0 |
