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


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


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

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


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

У меня прога как раз работает и с mssql и с ораклом, делаю именно так.
...
Рейтинг: 0 / 0
05.03.2012, 17:18
    #37691963
Kent_vrn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение на PB, меняем базу с MSSQL на Oracle
Можно достать наименования и типы параметров по умолчанию вот от сюда
Код: 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
05.03.2012, 18:08
    #37692138
VanoR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение на PB, меняем базу с MSSQL на Oracle
Kent_vrn,

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

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

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


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