powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / трабл с запросом времени
25 сообщений из 56, страница 2 из 3
трабл с запросом времени
    #33174274
maxim566
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AIZТеперь совсем не понятно, почему не
datetime ldt_sysdate
SELECT SYSDATE into :ldt_sysdate FROM DUAL;
как предлагал PL99?

Сделаю. Просто начальный вариант не мой... Других "спецов". Но в чем проблема решительно не понимаю. Данный скрипт пробовал, результат тот же...
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33174351
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxim566 AIZА что делается в системе (в текущем состоянии) ДО
SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd') into :ls_sysdate_date FROM DUAL;

Если этот скрипт от PL99 работает стабильно сам по себе, значит что-то другое гадит ДО того как!
Дело в том что качественно все проследить и посмотреть очень сложно, т.к. процесс (в процессе которого ;-) вызывается скрипт с этим запросом, и возникает такой результат) очень громоздкий и мало того работает во многопоточном режими. Т.е. дебаггер отпадает.Многопоточный - это именно многопоточный? Или речь идет про асинхронные обращения к БД? SQLErrText, в котором содержится "f_env_duration_to_string.fun" чем генерируется? Там идет что-нибудь, вроде
Код: plaintext
raise_application_error (- 20001 , 'f_env_duration_to_string.fun');
?
В этом случае, AFAIK, в SQLErrText должно быть нечто вроде "ORA-20001 f_env_duration_to_string.fun" и соответствующий номер ошибки в SQLDbCode. Все потоки работают с одним объектом транзакций и это SQLCA? Чего-то ты темнишь :-))

Если отладчиком пользоваться нельзя, напиши функцию логирования и пиши отладочную информацию в файл.
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33174914
Геннадич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А никто из "спецов" не блокирует DUAL примерно так:
Код: plaintext
Select value from dual for update;
в f_env_duration_to_string.fun или ещё где-нибудь?
На соседней ветке недавно такое обсуждалось.
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33175443
maxim566
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Многопоточный - это именно многопоточный? Или речь идет про асинхронные обращения к БД? SQLErrText, в котором содержится "f_env_duration_to_string.fun" чем генерируется? Там идет что-нибудь, вроде
Код: plaintext
raise_application_error (- 20001 , 'f_env_duration_to_string.fun');
?
В этом случае, AFAIK, в SQLErrText должно быть нечто вроде "ORA-20001 f_env_duration_to_string.fun" и соответствующий номер ошибки в SQLDbCode. Все потоки работают с одним объектом транзакций и это SQLCA? Чего-то ты темнишь :-))

Если отладчиком пользоваться нельзя, напиши функцию логирования и пиши отладочную информацию в файл.

Программка производит некоторые экспорт данных из одной системы в другую, и может одновременно экспортировать несколько наборов данных, при этом, позволяя пользователю работать с интерфейсом. В этом смысле многопоточная. Для транзакций используется собственный объект.

Чем генерируется такой SQLERRTEXT я без понятия, но он такой. Судя по всему он связан с моей глобальной функцией
'f_env_duration_to_string() но почему она вдруг вызывается, я без понятия... ;-(
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33175446
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читал я этот топик и не выдержал :))
Возник такой вопрос: можно все-таки выдать нам текст ошибки или так и будем в угадайку играть?
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33175448
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Геннадич
А никто из "спецов" не блокирует DUAL примерно так:
В Оракле нельзя заблокировать таблицу по чтению.
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33175471
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте (сделав бэкап) провести оптимизацию всех библиотек с последующим full rebuild.
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33175472
maxim566
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskyЧитал я этот топик и не выдержал :))
Возник такой вопрос: можно все-таки выдать нам текст ошибки или так и будем в угадайку играть?

Можно, смотря что ты имеешь ввиду. Еще раз - ошибка в том что с помощью вышеуказанного запроса, возвращается вместо даты пустое значение. При этом, в свойстве SQLERRTEXT соответствующей транзакции лежит следующая строчка: "f_env_duration_to_string.fun", а SQLERRCode = -1. Вот такие дела...
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33175482
maxim566
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ГеннадичА никто из "спецов" не блокирует DUAL примерно так:
Код: plaintext
Select value from dual for update;
в f_env_duration_to_string.fun или ещё где-нибудь?
На соседней ветке недавно такое обсуждалось.
Нет такого там нету... ;-)
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33175503
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использование драйвера O73 (как советовали) что-то меняет?
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33175575
maxim566
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskyИспользование драйвера O73 (как советовали) что-то меняет?

Поподробней, если можно. К тому же боюсь для "спецов" использование конкретного драйвера важно.
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33175628
maxim566
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понял, что проблема кроется в многопоточности. В однопоточном режиме все нормально.
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33175822
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxim566Для транзакций используется собственный объект. Я пока просто спросил используется ли для всех обращений к базе один единственный глобальный объект транзакций или в каких-то случаях создаются дополнительные коннекты? Особенно в свете
maxim566Программка производит некоторые экспорт данных из одной системы в другую. Системы на одном сервере живут или на разных?

maxim566Чем генерируется такой SQLERRTEXT я без понятия, но он такой. Судя по всему он связан с моей глобальной функцией
'f_env_duration_to_string() но почему она вдруг вызывается, я без понятия... ;-(Вы, что, простите за прямоту, намекаете, что эта самая функция не серверная, а клиентская? Кто-то напрямую пишет нечто вроде SQLCA.SQLErrText="f_env_duration_to_string.fun"?
Участники форума заинтригованы :-))

Ктати, про SQLDBCode мы до сих пор ничего не знаем...
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33175851
maxim566
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 мы до сих пор ничего не знаем...
Посмотрю. Но теперь стало понятно что дело видимо в конекционном объекте. Так как в одном потоке все это работает прилично.
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33175857
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 того объекта транзакции, с помощью которого вы обращались к серверу БД
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33175871
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 maxim566. Эту ссылку Филипп уже приводил, но тем не менее
Как правильно задавать вопросы
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33176009
Фотография AIZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И, все-таки, SQLDBCode какой?
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33176050
maxim566
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AIZИ, все-таки, SQLDBCode какой?
Так я пока разбираюсь с тем какой транзакцией пользуется этот запрос. Тогда смогу понять точно "сообщения об ошибках"
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33176077
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я помню в каждом потоке надо создавать свой объект транзакции.
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33176086
maxim566
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskyНасколько я помню в каждом потоке надо создавать свой объект транзакции.
Да он создается отдельно.

P.S. Всем спасибо. Почитал полезный мануал про то как задавать вопросы. Проблему решу следующим образом - получать время буду средствами Power Builder, ибо большой проблемы в этом не вижу.
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33176099
Фотография AIZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только учти, если софт не на сервере работает, будет дата и время локальной станции
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33176119
maxim566
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело спасла собственноручно написанная копия "спецовской" функции в правильном месте, с учетом правильной транзакции. И как я сразу не догадался... Всем еще раз спасибо.
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33176127
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще если говорить о строке "f_env_duration_to_string.fun", то это ссылка на объектный(откомпилированный) код ф-и f_env_duration_to_string, который хранится в PBL/PBD под таким именем.

Очевидно что это просто мусор.
Обычно от этого помогает оптимизация.
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33176128
maxim566
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Раз уж один вопрос отпал, может кто-нибудь знает что делать с этим:

http://www.sql.ru/forum/actualthread.aspx?tid=201733
...
Рейтинг: 0 / 0
трабл с запросом времени
    #33195018
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть небольшие познания по данному вопросу
формат параметра sysdate в Оracle устанавливается в региональных настройках самого Oracle, а дату он не возвращает потому, что на компьютере клиента стоят свои региональные настройки (сам сталкивался - знаю о чем говорю), вернее возвращает через раз, а разговоры о блокировке таблице таблицы DUAL, это по-крайней мере звучит странно....
...
Рейтинг: 0 / 0
25 сообщений из 56, страница 2 из 3
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / трабл с запросом времени
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]