powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Из Oracle Express в MSSQL
25 сообщений из 41, страница 1 из 2
Из Oracle Express в MSSQL
    #32291123
Александр Олаф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никто не подскажет как соединиться с MSSQL из Oracle Express.
Создал ODBC Connection, но когда пытаюсь соединиться Oracle Express отворачивает с ошибкой SQLOUT20.. очень информативно. на otn.oracle.com ничего про это не нашел.
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291237
Александр Олаф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал сейчас тащить данные из Access - то же самое..
С Excell аналогично. Неужели все всегда тянули данные только из Оракла ?
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291257
drive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
vrb arg_01  text
vrb arg_02  text
vrb p_con   text

trap on any_error
p_con = '\'имя сервера\''

sql.dbms = 'odbc'
sqlmessages = yes
odbc.source = &p_con
sql connect sa

sql declare cursor_ cursor for -
select CODE, DESCR -
from [имя базы].[dbo].[имя таблицы]

if sqlcode ne  0 
then signal err1 'Declare cursor failed.'

sql open cursor_

if sqlcode ne  0 
then signal err2 'Cursor open failed.'

while sqlcode eq  0 
do
    sql fetch cursor_ into -
    :arg_01, -
    :arg_02

    if sqlcode eq  0 
    then  do

      maintain имя дименшена merge arg_01
      limit имя дименшена to arg_01
      &obj(property 'shortlabelvar' 'имя дименшена')=arg_02

    doend
doend

sql close cursor_

if sqlcode ne  0 
then signal err4 'Cursor close failed.'

sql disconnect
update
return  0 

any_error:

sql disconnect
return - 2 
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291264
Александр Олаф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Круто...
Я пока еще такого не проделывал. Я просто пытался создать Relational Connection. Может конечно есть разница между коннектом из программы и коннектом через Relational Connections, но
1) а где пароль sa прописать ?
2) а обязательно под sa коннектится ?
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291265
Александр Олаф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще в p_con записывается имя сервера. Туда надо именно имя сервера писать или все-таки ODBC DataSource ?
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291304
drive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) а где пароль sa прописать ?
Код: plaintext
1.
2.
...
sql connect sa identified by пароль
...

2) а обязательно под sa коннектится ?
Не обязательно.
Туда надо именно имя сервера писать или все-таки ODBC DataSource ?
ODBC DataSource.

Кстати, все это написанно документации.
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291330
Александр Олаф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще вопрос можно ?
dbo это что такое ?
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291339
Александр Олаф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот попробовал скомпилить:
ERROR: (SUBGONE00) You have requested a feature or used a command which
is not supported in this release.
In Ms_load_test PROGRAM:
odbc.source = &p_con
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291367
drive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты под что пишешь загрузку, под Express, или под OLAP 9i?
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291385
Александр Олаф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oracle Express
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291406
drive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда ничего не понимаю. У меня, на Express 6.3.4 все компилируется (только <имя дименшена> поменял)... Не знаю, в прошлых релизах это тоже вроде было, а вот в 9i исчезло, и должна появляться именно та ошибка которую ты написал (я собственно из-за этого про 9i и спросил)... Еще раз проверь правильно ли ты перекопировал мою процедуру. Все должно работать.
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291416
Александр Олаф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oracle Express 6.3.4 стоит. а вот Oracle 9i. Насколько я понимаю это никак влиять не должно...
для проверки просто такую программу создал.
vrb p_con text

trap on any_error
p_con = '\'DATASERVER\''

sql.dbms = 'odbc'
sqlmessages = yes
odbc.source = &p_con
sql connect rupper identified by 123

sql disconnect
return 0

any_error:

sql disconnect
return -2

Ошибка осталась...
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291460
drive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня твоя процедура откомпилировалась... Может быть у тебя какая-нибудь урезанная версия Express'а? Без каких-нибудь компонентов.
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291529
Александр Олаф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во ! Получилось ! ODBC забыл прикрутить к серверу :)
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291600
Александр Олаф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как всосать иерархию ?
т.е. есть таблица, завязаная через "Ухо"
А еще лучше скажите где об этом прочитать ?
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291638
Георгий Т.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Иерархия "грузится" просто.

Перед началом цикла загрузки на всякий случай делаем (это если иерархий более одной) :
limit ***.hierdim to 'STANDARD'

При обработке очередной записи :
***.parent = _parent

По завершении загрузки рассчитываем иерархию примерно так :
call edde.hiermnt(1,'MyDimension')

==============

***.parent - obj(prp 'parentrel' 'MyDimension')
***.hierdim - obj(prp 'hierdim' 'MyDimension')
_parent - локальная переменная типа TEXT, в неё считываем код "папаши" для текущего элемента

==============

Советую посмотреть на :
dsc ***.parent
dsc ***.hierdim
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291671
Александр Олаф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Брррр..
если честно ничего не понял :(((
вот программа.. в таблице есть PARENTID
что мне надо поменять ? Если не сложно конечно...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
vrb arg_01  text
vrb arg_02  text
vrb p_con   text

trap on any_error
p_con = '\'DATASERVER\''

sql.dbms = 'odbc'
sqlmessages = yes
odbc.source = &p_con
sql connect rupper identified by  123 

sql declare cursor_ cursor for -
select ID, DESCR -
from Trade_1C.dbo.SC12

if sqlcode ne  0 
then signal err1 'Declare cursor failed.'

sql open cursor_

if sqlcode ne  0 
then signal err2 'Cursor open failed.'

while sqlcode eq  0 
do
    sql fetch cursor_ into -
    :arg_01, -
    :arg_02

    if sqlcode eq  0 
    then  do

      maintain GOODS merge arg_01
      limit GOODS to arg_01
      &obj(property 'shortlabelvar' 'GOODS')=arg_02

    doend
doend

sql close cursor_

if sqlcode ne  0 
then signal err4 'Cursor close failed.'

sql disconnect
update
return  0 

any_error:

sql disconnect
return - 2 

...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291703
Александр Олаф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот тут если правильно понял поправил вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
vrb arg_01  text
vrb arg_02  text
vrb parent_ text
vrb p_con   text

trap on any_error
p_con = '\'ZUB\''

sql.dbms = 'odbc'
sqlmessages = yes
odbc.source = &p_con
sql connect rupper identified by  123 

sql declare cursor_ cursor for -
select ID, DESCR, PARENTID -
from Trade_1C.dbo.SC12

if sqlcode ne  0 
then signal err1 'Declare cursor failed.'

sql open cursor_

if sqlcode ne  0 
then signal err2 'Cursor open failed.'

while sqlcode eq  0 
do
    sql fetch cursor_ into -
    :arg_01, -
    :arg_02, -
    :parent_

    if sqlcode eq  0 
    then  do

      maintain GOODS merge arg_01
      limit GOODS to arg_01
      &obj(property 'shortlabelvar' 'GOODS')=arg_02
      &obj(property 'parentrel' 'GOODS') = parent_
    doend
doend
call edde.hiermnt( 1 ,'GOODS')
sql close cursor_

if sqlcode ne  0 
then signal err4 'Cursor close failed.'

sql disconnect
update
return  0 

any_error:

sql disconnect
return - 2 

Но сейчас при запуске он у меня ругается
ERROR: (MXXEQ35) 3R6I is not a valid GOODS.
Это прямо на первой же записи..
Какие есть соображения.. в ID и PARENTID встречаются пробелы.
второе - Express требует наличия парента при загрузке чилда.
какое из соображений верное и как с ними бороться ?
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291708
Георгий Т.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавки :

1)
...vrb arg_03 text...

2)
...
trap on any_error
lmt &obj(prp 'hierdim' 'goods') to 'STANDARD'
...

3)
...select ID, DESCR, PARENTID - ...

4)
...sql fetch cursor_ into -
:arg_01, :arg_02, :arg_03...

5)
...
&obj(property 'shortlabelvar' 'GOODS')=arg_02
mnt goods merge arg_03
&obj(prp 'parentrel' 'goods')=arg_03
...

6)
...
call edde.hiermnt(1,'goods')
update
...
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291736
Александр Олаф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во написал, запустил.
Всего записей 15000 работает уже 15 минут. без иерархии они всасывались секунд за 10... это нормально или висит ? (он вообще у меня зависает постоянно)
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291809
Александр Олаф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так. пришлось грохнуть коннекшн.
Посмотрел на то, что он залил - он запихал все в одну папку и еще и выругался на циклы. Циклов нет. нужно ли создавать несколько иерархий если уровень вложености 3 ?
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291824
Георгий Т.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В одной иерархии можно реализовать много уровней (даже очень много).

Что такое "в одну папку" я не совсем понял.

По поводу циклов : для всех элементов верхнего уровня значение *.parent должно равняться NA. Возможно, приводит к ошибке несоблюдение этого условия. Ну и конечно исходная таблица должна быть "правильной".

Для начала попробуй отладить программу не на всей таблице, а на её простейшем кусочке из 3 записей (один "парент" и двое "деток") - многое прояснится. Это не займёт много времени.

И хотелось бы глянуть на текущий вариант программы.
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291837
Александр Олаф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ох Георгий что бы я без Вас делал :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
vrb arg_01  text
vrb arg_02  text
vrb parent_ text
vrb p_con   text

trap on any_error
p_con = '\'DATASERVER\''

sql.dbms = 'odbc'
sqlmessages = yes
odbc.source = &p_con
sql connect rupper identified by  123 

sql declare cursor_ cursor for -
select ID, DESCR, PARENTID -
from Trade_1C.dbo.SC12

if sqlcode ne  0 
then signal err1 'Declare cursor failed.'

sql open cursor_

if sqlcode ne  0 
then signal err2 'Cursor open failed.'

while sqlcode eq  0 
do
    sql fetch cursor_ into -
    :arg_01, -
    :arg_02, -
    :parent_

    if sqlcode eq  0 
    then  do

      maintain GOODS merge arg_01
      limit GOODS to arg_01
      &obj(property 'shortlabelvar' 'GOODS')=arg_02
      maintain GOODS merge parent_
      &obj(property 'parentrel' 'GOODS') = parent_
    doend
doend
call edde.hiermnt( 1 ,'GOODS')
sql close cursor_

if sqlcode ne  0 
then signal err4 'Cursor close failed.'

sql disconnect
update
return  0 

any_error:

sql disconnect
return - 2 

Сейчас посмотрел на корни. PARENTID=0 у них. как проверить что ноль и подставить NA ?
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291847
Георгий Т.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
самый тупой способ - перед edde... можно написать примерно так :
lmt goods to *.parent eq '0' " ////(или 0?)
*.parent = na
...
Рейтинг: 0 / 0
Из Oracle Express в MSSQL
    #32291857
Гергий Т.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или так :


...
maintain GOODS merge arg_01
limit GOODS to arg_01
&obj(property 'shortlabelvar' 'GOODS')=arg_02

if parent_ eq '0'
then parent_ = na
else mnt goods merge parent_

&obj(property 'parentrel' 'GOODS') = parent_
...


---

Не знаю что будет быстрее работать
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Из Oracle Express в MSSQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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