powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Приложение на PB, меняем базу с MSSQL на Oracle
9 сообщений из 9, страница 1 из 1
Приложение на PB, меняем базу с MSSQL на Oracle
    #37688997
Zaharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, подскажите, может кому доводилось сталкиваться с такой проблемой?


Есть приложение написанное на PB и для БД MSSQL, то есть все DW с синтаксисом MSSQL.
Теперь происходит миграция на ORACLE. Одно из условий, иметь код, который позволял бы конектиться и работать с обеими этими БД. Для этого мы используем событие SQLPreview, где можно изменить SQL вызов, приведя его в вид, нужный для Oracle.


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

С Ораклом ситуация иная, мы ловим такой вызов в SQLPreview, приводим его к виду, нужному Oracle, но из за того что какие то параметры пропущены, вызов завершается ошибкой. Несмотря даже на то, что не передавались параметры, у которых есть значения по умолчанию.


Проверять все датавинды не хочется, подскажите, можно ли что то сделать с этой проблемой?
...
Рейтинг: 0 / 0
Приложение на PB, меняем базу с MSSQL на Oracle
    #37689120
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zaharp,
Скорее всего, ничего проще, чем прочесать все датавинды, нету. Я уже забыл, может в PLSQLe можно написать wrapper procs, с разными количествами аргументов, зовущих основную с подставленными аргументами, имеющими значения по умолчанию?
...
Рейтинг: 0 / 0
Приложение на PB, меняем базу с MSSQL на Oracle
    #37689155
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филиппможет в PLSQLe можно написать wrapper procs, с разными количествами аргументов, зовущих основную с подставленными аргументами, имеющими значения по умолчанию?В пакете можно.
...
Рейтинг: 0 / 0
Приложение на PB, меняем базу с MSSQL на Oracle
    #37689343
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZaharpС Ораклом ситуация иная, мы ловим такой вызов в SQLPreview, приводим его к виду, нужному Oracle, но из за того что какие то параметры пропущены, вызов завершается ошибкой. Несмотря даже на то, что не передавались параметры, у которых есть значения по умолчанию.
смотрите вьюху all_arguments , в ней можно найти все параметры процедуры.
на основе этих параметров изменяйте свои DW.

У меня прога как раз работает и с mssql и с ораклом, делаю именно так.
...
Рейтинг: 0 / 0
Приложение на PB, меняем базу с MSSQL на Oracle
    #37691963
Kent_vrn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно достать наименования и типы параметров по умолчанию вот от сюда
Код: sql
1.
2.
3.
4.
SELECT PARAMETER_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.PARAMETERS
WHERE PARAMETER_MODE = 'IN' and
specific_name = 'procedure_name'



Скрипт создания процидуры отсюда
Код: sql
1.
2.
3.
4.
SELECT ROUTINE_DEFINITION
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE' and
ROUTINE_NAME = 'procedure_name'



Ну а дальше пропарсить и получить значения по умолчанию для тех параметров для которых они присутствуют
...
Рейтинг: 0 / 0
Приложение на PB, меняем базу с MSSQL на Oracle
    #37692138
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kent_vrn,

это Вы для Оракла написали?
...
Рейтинг: 0 / 0
Приложение на PB, меняем базу с MSSQL на Oracle
    #37692156
BoBaaaaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чот не похоже...
...
Рейтинг: 0 / 0
Приложение на PB, меняем базу с MSSQL на Oracle
    #37692265
Kent_vrn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, немного спутал. Для оракла думаю тоже вытащить можно.
...
Рейтинг: 0 / 0
Приложение на PB, меняем базу с MSSQL на Oracle
    #37693086
Zaharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

Спасибо за ваши идеи! Прочитав все, у меня сложилось видение, что делать:

Придется пройти по всем датавиндам скриптом и для каждой сравнить фактический список параметров со списком из базы. Сравнивать буду с процедурами из базы mssql, поскольку из нее будут делать базу на Оракле. Если обнаружится, что в датавинде что то пропущено, то этот параметр надо добавить в вызов процедуры в датавинде, присвоив ему значение по умолчанию.
В самой датавинде новый параметр добавлять не буду, чтобы не менять вызывающий код.
Единственный вопрос остался про значения по умолчанию.
Можно ли их вытащить из базы на mssql как нибудь попроще, без парсинга кода процедуры?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Приложение на PB, меняем базу с MSSQL на Oracle
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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