Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / insert во view@dblink с returning / 14 сообщений из 14, страница 1 из 1
24.01.2011, 10:04
    #37074579
Bucher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert во view@dblink с returning
Просмотрел все темы про returning, но так и нашел решение проблемы при insert во view@dblink.

При вызове
insert into v1@db1(str1) values ('data') returning id into v_id;

возникает ошибка ORA-22816: unsupported feature with RETURNING clause.

id формируется сиквенсом на стороне @db1 и не доступен для считывания.

Без dblink insert работает нормально.

Как можно решить проблему? Возможно, есть другие способы вернуть id в переменную?

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
...
Рейтинг: 0 / 0
24.01.2011, 10:40
    #37074676
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert во view@dblink с returning
Bucherвозникает ошибка ORA-22816: unsupported feature with RETURNING clause.RTFM Restrictions on the RETURNING Clause (FAQ)
BucherКак можно решить проблему? Возможно, есть другие способы вернуть id в переменную?
Код: plaintext
dbms_sql.parse@db1(
...
Рейтинг: 0 / 0
24.01.2011, 11:12
    #37074761
Bucher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert во view@dblink с returning
ElicBucherвозникает ошибка ORA-22816: unsupported feature with RETURNING clause.RTFM Restrictions on the RETURNING Clause (FAQ)
BucherКак можно решить проблему? Возможно, есть другие способы вернуть id в переменную?
Код: plaintext
dbms_sql.parse@db1(


Спасибо, но у меня нет и не будет прав на DSQL на @db1.
...
Рейтинг: 0 / 0
24.01.2011, 11:29
    #37074813
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert во view@dblink с returning
Bucherно у меня нет и не будет прав на DSQL на @db1.dbmssql.sql
Код: plaintext
1.
2.
grant execute on dbms_sql to public
/
...
Рейтинг: 0 / 0
24.01.2011, 11:36
    #37074829
Bucher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert во view@dblink с returning
ElicBucherно у меня нет и не будет прав на DSQL на @db1.dbmssql.sql
Код: plaintext
1.
2.
grant execute on dbms_sql to public
/


Хорошая шутка...

Прав нет не потому-что я не знаю как их дать, а потому-что админы сервера @db1 не дадут таких прав. Это ж дырка в безопасности их системы, через нее можно какие угодно скрипты запускать....
...
Рейтинг: 0 / 0
24.01.2011, 11:39
    #37074845
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert во view@dblink с returning
а создать на удаленном сервере процедуру, которая будет делать такой INSERT ?
...
Рейтинг: 0 / 0
24.01.2011, 11:54
    #37074917
Bucher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert во view@dblink с returning
tru55а создать на удаленном сервере процедуру, которая будет делать такой INSERT ?

Это конечно вариант, но очень трудозатратный по времени.
...
Рейтинг: 0 / 0
24.01.2011, 12:01
    #37074949
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert во view@dblink с returning
BucherПрав нет не потому-что я не знаю как их дать, а потому-что админы сервера @db1 не дадут таких прав.Чтобы не давать таких прав, их сперва отобрать нужно.
...
Рейтинг: 0 / 0
24.01.2011, 12:02
    #37074957
Bucher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert во view@dblink с returning
ElicBucherПрав нет не потому-что я не знаю как их дать, а потому-что админы сервера @db1 не дадут таких прав.Чтобы не давать таких прав, их сперва отобрать нужно.

Их уже давно отобрали...
...
Рейтинг: 0 / 0
24.01.2011, 12:03
    #37074960
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert во view@dblink с returning
BucherElicпропущено...
пропущено...
Хорошая шутка...

Прав нет не потому-что я не знаю как их дать, а потому-что админы сервера @db1 не дадут таких прав. Это ж дырка в безопасности их системы, через нее можно какие угодно скрипты запускать....Elic. вам показал, что эти гранты выдаются всем по-умолчанию при установке пакета DBMS_SQL.

Проверить это и попробовать у вас "рука не поднимается"?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
07.11.2016, 16:50
    #39342780
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert во view@dblink с returning
а TOAD каким-то образом получает с удаленки rowid вставленной записи

Знать бы каким ...
...
Рейтинг: 0 / 0
09.11.2016, 11:51
    #39344085
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert во view@dblink с returning
>> а TOAD каким-то образом получает с удаленки rowid вставленной записи

оттрассировали сессию TOAD'а на удаленной БД:
Открываю датасет/грид запросом к TEST_ZST@link
вставляю запись, нажимаю post
Появляются обновленные данные новой строки, например, id

остаётся непонятным, откуда всё-таки Toad берет rowid новой записи - :Old_ROWID
Код: plsql
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.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
SELECT "A1".ROWID,"A1"."TEST_ID","A1"."TEST_DATE","A1"."TEST_CEX",
  "A1"."GROUP_ID","A1"."KURS_ID","A1"."REGN_POLZ","A1"."PR_EKZ","A1"."N_COMP",
  "A1"."PEREZD","A1"."STAT1","A1"."STAT2","A1"."NEZ_TEST","A1"."N_PROT",
  "A1"."STAT1_1","A1"."STAT2_2","A1"."TEST_ALL_ID" 
FROM
 "TEST_ZST" "A1" WHERE "A1"."TEST_ID">611900


call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        2      0.00       0.00          0          0          0           0
Execute      2      0.00       0.00          0          0          0           0
Fetch        2      0.00       0.00          0        936          0        1000
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        6      0.00       0.00          0        936          0        1000

Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 74  
Number of plan statistics captured: 2

Rows (1st) Rows (avg) Rows (max)  Row Source Operation
---------- ---------- ----------  ---------------------------------------------------
       500        500        500  TABLE ACCESS BY INDEX ROWID TEST_ZST (cr=468 pr=0 pw=0 time=653 us cost=4 size=57 card=1)
       500        500        500   INDEX RANGE SCAN SYS_C0010886 (cr=4 pr=0 pw=0 time=21 us cost=3 size=0 card=1)(object id 83275)


Elapsed times include waiting on following events:
  Event waited on                             Times   Max. Wait  Total Waited
  ----------------------------------------   Waited  ----------  ------------
  SQL*Net message to client                       6        0.00          0.00
  SQL*Net message from client                     6        7.37         13.20
  SQL*Net more data to client                     8        0.00          0.00
********************************************************************************

SQL ID: 1ng3sk8chf46j Plan Hash: 0

INSERT  INTO "TEST_ZST" "A1" ("TEST_DATE","TEST_CEX","GROUP_ID",
  "KURS_ID","REGN_POLZ","PR_EKZ","N_COMP") 
VALUES
 (:TEST_DATE,:TEST_CEX,:GROUP_ID,:KURS_ID,:REGN_POLZ,:PR_EKZ,:N_COMP)


call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          1         12           1
Fetch        0      0.00       0.00          0          0          0           0
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        2      0.00       0.00          0          1         12           1

Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 74  
Number of plan statistics captured: 1

Rows (1st) Rows (avg) Rows (max)  Row Source Operation
---------- ---------- ----------  ---------------------------------------------------
         0          0          0  LOAD TABLE CONVENTIONAL  (cr=3 pr=0 pw=0 time=2371 us)


Elapsed times include waiting on following events:
  Event waited on                             Times   Max. Wait  Total Waited
  ----------------------------------------   Waited  ----------  ------------
  log file sync                                   1        0.00          0.00
  SQL*Net message to client                       1        0.00          0.00
  SQL*Net message from client                     1        0.00          0.00
********************************************************************************

SQL ID: 9qs7yf57scgst Plan Hash: 1093872792

select test_zst_seq.nextval 
from
 dual 


call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        1      0.00       0.00          0          0          1           1
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        3      0.00       0.00          0          0          1           1

Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 58     (recursive depth: 1)
Number of plan statistics captured: 1

Rows (1st) Rows (avg) Rows (max)  Row Source Operation
---------- ---------- ----------  ---------------------------------------------------
         1          1          1  SEQUENCE  TEST_ZST_SEQ (cr=2 pr=0 pw=0 time=1423 us)
         1          1          1   FAST DUAL  (cr=0 pr=0 pw=0 time=0 us cost=2 size=0 card=1)

********************************************************************************

SQL ID: 4m7m0t6fjcs5x Plan Hash: 1935744642

update seq$ set increment$=:2,minvalue=:3,maxvalue=:4,cycle#=:5,order$=:6,
  cache=:7,highwater=:8,audit$=:9,flags=:10 
where
 obj#=:1


call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          2          2           1
Fetch        0      0.00       0.00          0          0          0           0
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        2      0.00       0.00          0          2          2           1

Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: CHOOSE
Parsing user id: SYS   (recursive depth: 2)
Number of plan statistics captured: 1

Rows (1st) Rows (avg) Rows (max)  Row Source Operation
---------- ---------- ----------  ---------------------------------------------------
         0          0          0  UPDATE  SEQ$ (cr=2 pr=0 pw=0 time=148 us)
         1          1          1   INDEX UNIQUE SCAN I_SEQ1 (cr=2 pr=0 pw=0 time=14 us cost=1 size=70 card=1)(object id 79)

********************************************************************************

SQL ID: gzh847qauwjtu Plan Hash: 2522721365

SELECT "A1"."TEST_ID","A1"."TEST_DATE","A1"."TEST_CEX","A1"."GROUP_ID",
  "A1"."KURS_ID","A1"."REGN_POLZ","A1"."PR_EKZ","A1"."N_COMP","A1"."PEREZD",
  "A1"."STAT1","A1"."STAT2","A1"."NEZ_TEST","A1"."N_PROT","A1"."STAT1_1",
  "A1"."STAT2_2","A1"."TEST_ALL_ID" 
FROM
 "TEST_ZST" "A1" WHERE "A1".ROWID=:Old_ROWID

...
Рейтинг: 0 / 0
09.11.2016, 12:44
    #39344141
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert во view@dblink с returning
DOA/Делфи в такой ситуации честно валит ошибку
авторORA-22816: с фразой RETURNING это средство не поддерживается
...
Рейтинг: 0 / 0
10.11.2016, 17:20
    #39345078
Zloxa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert во view@dblink с returning
andreymx,

Я не в теме, но любопытство распирает и меня.

Есть мысль что это может быть какая-то фишка OCI.

К примеру так же как и select for update через OCI возвращает еще и ROWIDs, даже если rowid не присутствует в select-list (как я понимаю, в OCI_ATTR_FETCH_ROWID), insert values может так же что-то где-то возвращать.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / insert во view@dblink с returning / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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