|
Приложение на PB, меняем базу с MSSQL на Oracle
|
|||
---|---|---|---|
#18+
Добрый день, подскажите, может кому доводилось сталкиваться с такой проблемой? Есть приложение написанное на PB и для БД MSSQL, то есть все DW с синтаксисом MSSQL. Теперь происходит миграция на ORACLE. Одно из условий, иметь код, который позволял бы конектиться и работать с обеими этими БД. Для этого мы используем событие SQLPreview, где можно изменить SQL вызов, приведя его в вид, нужный для Oracle. Проблема происходит с датавиндами, построенными на хранимых процедурах: для MSSQL можно не указывать все параметры хранимой процедуры при вызове, если у них есть значение по умолчанию. Поэтому вызов процедуры с использованием к примеру одного параметра вместо нескольких - работает. С Ораклом ситуация иная, мы ловим такой вызов в SQLPreview, приводим его к виду, нужному Oracle, но из за того что какие то параметры пропущены, вызов завершается ошибкой. Несмотря даже на то, что не передавались параметры, у которых есть значения по умолчанию. Проверять все датавинды не хочется, подскажите, можно ли что то сделать с этой проблемой? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2012, 17:40 |
|
Приложение на PB, меняем базу с MSSQL на Oracle
|
|||
---|---|---|---|
#18+
Zaharp, Скорее всего, ничего проще, чем прочесать все датавинды, нету. Я уже забыл, может в PLSQLe можно написать wrapper procs, с разными количествами аргументов, зовущих основную с подставленными аргументами, имеющими значения по умолчанию? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2012, 19:12 |
|
Приложение на PB, меняем базу с MSSQL на Oracle
|
|||
---|---|---|---|
#18+
Филиппможет в PLSQLe можно написать wrapper procs, с разными количествами аргументов, зовущих основную с подставленными аргументами, имеющими значения по умолчанию?В пакете можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2012, 19:41 |
|
Приложение на PB, меняем базу с MSSQL на Oracle
|
|||
---|---|---|---|
#18+
ZaharpС Ораклом ситуация иная, мы ловим такой вызов в SQLPreview, приводим его к виду, нужному Oracle, но из за того что какие то параметры пропущены, вызов завершается ошибкой. Несмотря даже на то, что не передавались параметры, у которых есть значения по умолчанию. смотрите вьюху all_arguments , в ней можно найти все параметры процедуры. на основе этих параметров изменяйте свои DW. У меня прога как раз работает и с mssql и с ораклом, делаю именно так. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2012, 23:39 |
|
Приложение на PB, меняем базу с MSSQL на Oracle
|
|||
---|---|---|---|
#18+
Можно достать наименования и типы параметров по умолчанию вот от сюда Код: sql 1. 2. 3. 4.
Скрипт создания процидуры отсюда Код: sql 1. 2. 3. 4.
Ну а дальше пропарсить и получить значения по умолчанию для тех параметров для которых они присутствуют ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 17:18 |
|
Приложение на PB, меняем базу с MSSQL на Oracle
|
|||
---|---|---|---|
#18+
Kent_vrn, это Вы для Оракла написали? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 18:08 |
|
Приложение на PB, меняем базу с MSSQL на Oracle
|
|||
---|---|---|---|
#18+
чот не похоже... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 18:14 |
|
Приложение на PB, меняем базу с MSSQL на Oracle
|
|||
---|---|---|---|
#18+
Да, немного спутал. Для оракла думаю тоже вытащить можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 19:30 |
|
Приложение на PB, меняем базу с MSSQL на Oracle
|
|||
---|---|---|---|
#18+
Добрый день, Спасибо за ваши идеи! Прочитав все, у меня сложилось видение, что делать: Придется пройти по всем датавиндам скриптом и для каждой сравнить фактический список параметров со списком из базы. Сравнивать буду с процедурами из базы mssql, поскольку из нее будут делать базу на Оракле. Если обнаружится, что в датавинде что то пропущено, то этот параметр надо добавить в вызов процедуры в датавинде, присвоив ему значение по умолчанию. В самой датавинде новый параметр добавлять не буду, чтобы не менять вызывающий код. Единственный вопрос остался про значения по умолчанию. Можно ли их вытащить из базы на mssql как нибудь попроще, без парсинга кода процедуры? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 12:00 |
|
|
start [/forum/topic.php?fid=15&fpage=16&tid=1335570]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
48ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 256ms |
total: | 448ms |
0 / 0 |