Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Из Oracle Express в MSSQL / 25 сообщений из 41, страница 1 из 2
13.10.2003, 12:33
    #32291123
Александр Олаф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
Никто не подскажет как соединиться с MSSQL из Oracle Express.
Создал ODBC Connection, но когда пытаюсь соединиться Oracle Express отворачивает с ошибкой SQLOUT20.. очень информативно. на otn.oracle.com ничего про это не нашел.
...
Рейтинг: 0 / 0
13.10.2003, 13:55
    #32291237
Александр Олаф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
Попробовал сейчас тащить данные из Access - то же самое..
С Excell аналогично. Неужели все всегда тянули данные только из Оракла ?
...
Рейтинг: 0 / 0
13.10.2003, 14:10
    #32291257
drive
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
Код: 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
13.10.2003, 14:15
    #32291264
Александр Олаф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
Круто...
Я пока еще такого не проделывал. Я просто пытался создать Relational Connection. Может конечно есть разница между коннектом из программы и коннектом через Relational Connections, но
1) а где пароль sa прописать ?
2) а обязательно под sa коннектится ?
...
Рейтинг: 0 / 0
13.10.2003, 14:17
    #32291265
Александр Олаф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
И еще в p_con записывается имя сервера. Туда надо именно имя сервера писать или все-таки ODBC DataSource ?
...
Рейтинг: 0 / 0
13.10.2003, 14:47
    #32291304
drive
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
1) а где пароль sa прописать ?
Код: plaintext
1.
2.
...
sql connect sa identified by пароль
...

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

Кстати, все это написанно документации.
...
Рейтинг: 0 / 0
13.10.2003, 15:01
    #32291330
Александр Олаф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
Еще вопрос можно ?
dbo это что такое ?
...
Рейтинг: 0 / 0
13.10.2003, 15:04
    #32291339
Александр Олаф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
Вот попробовал скомпилить:
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
13.10.2003, 15:17
    #32291367
drive
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
Ты под что пишешь загрузку, под Express, или под OLAP 9i?
...
Рейтинг: 0 / 0
13.10.2003, 15:26
    #32291385
Александр Олаф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
Oracle Express
...
Рейтинг: 0 / 0
13.10.2003, 15:34
    #32291406
drive
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
Тогда ничего не понимаю. У меня, на Express 6.3.4 все компилируется (только <имя дименшена> поменял)... Не знаю, в прошлых релизах это тоже вроде было, а вот в 9i исчезло, и должна появляться именно та ошибка которую ты написал (я собственно из-за этого про 9i и спросил)... Еще раз проверь правильно ли ты перекопировал мою процедуру. Все должно работать.
...
Рейтинг: 0 / 0
13.10.2003, 15:38
    #32291416
Александр Олаф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
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
13.10.2003, 15:52
    #32291460
drive
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
У меня твоя процедура откомпилировалась... Может быть у тебя какая-нибудь урезанная версия Express'а? Без каких-нибудь компонентов.
...
Рейтинг: 0 / 0
13.10.2003, 16:22
    #32291529
Александр Олаф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
Во ! Получилось ! ODBC забыл прикрутить к серверу :)
...
Рейтинг: 0 / 0
13.10.2003, 16:51
    #32291600
Александр Олаф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
а как всосать иерархию ?
т.е. есть таблица, завязаная через "Ухо"
А еще лучше скажите где об этом прочитать ?
...
Рейтинг: 0 / 0
13.10.2003, 17:07
    #32291638
Георгий Т.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
Иерархия "грузится" просто.

Перед началом цикла загрузки на всякий случай делаем (это если иерархий более одной) :
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
13.10.2003, 17:18
    #32291671
Александр Олаф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
Брррр..
если честно ничего не понял :(((
вот программа.. в таблице есть 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
13.10.2003, 17:31
    #32291703
Александр Олаф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
Я вот тут если правильно понял поправил вот так:
Код: 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
13.10.2003, 17:34
    #32291708
Георгий Т.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
Добавки :

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
13.10.2003, 17:49
    #32291736
Александр Олаф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
Во написал, запустил.
Всего записей 15000 работает уже 15 минут. без иерархии они всасывались секунд за 10... это нормально или висит ? (он вообще у меня зависает постоянно)
...
Рейтинг: 0 / 0
13.10.2003, 18:40
    #32291809
Александр Олаф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
так. пришлось грохнуть коннекшн.
Посмотрел на то, что он залил - он запихал все в одну папку и еще и выругался на циклы. Циклов нет. нужно ли создавать несколько иерархий если уровень вложености 3 ?
...
Рейтинг: 0 / 0
13.10.2003, 19:01
    #32291824
Георгий Т.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
В одной иерархии можно реализовать много уровней (даже очень много).

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

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

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

И хотелось бы глянуть на текущий вариант программы.
...
Рейтинг: 0 / 0
13.10.2003, 19:21
    #32291837
Александр Олаф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
Ох Георгий что бы я без Вас делал :)
Код: 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
13.10.2003, 19:28
    #32291847
Георгий Т.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
самый тупой способ - перед edde... можно написать примерно так :
lmt goods to *.parent eq '0' " ////(или 0?)
*.parent = na
...
Рейтинг: 0 / 0
13.10.2003, 19:32
    #32291857
Гергий Т.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из Oracle Express в MSSQL
или так :


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


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