|
PRIMARY KEY в таблице OF XMLTYPE - как?
|
|||
---|---|---|---|
#18+
ORA 12.2 Зарегистрировал xml-схему. Код: xml 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.
Пытаюсь создать на её основе XMLTYPE-таблицу. Если делаю так: Код: plsql 1. 2. 3.
то запрос проходит без проблем. Но я хочу иметь в таблице первичный ключ в виде "WarehouseId". Но как его определить в тексте запроса? Рылся в доках. Для XMLTYPE-вьюх нашёл такоеThe object identifier for uniquely identifying each row in the view can be created using an expression such as extract() with getNumberVal() on the XMLType value . Oracle recommends that you use the extract() operator rather than the member function in the OBJECT IDENTIFIER clause.А в примерах к ним что-то вроде Код: plsql 1.
для выковыривания значения, но никак не могу понять, как это приспособить к моей схеме. Или я вообще не туда рою? И вторая проблема. Пытаюсь явно указать OBJECT IDENTIFIER IS при создании xml-таблицы. Но ругается, что недопустимо, если указываю xml-схему. Без явного указания xml-схемы позволяет сделать только OBJECT IDENTIFIER IS SYSTEM GENERATED . Так system-generated и так по умолчанию будет. Как мне указать IS PRIMARY KEY, чтоб его использовала? Что-то вроде: Код: plsql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2020, 21:37 |
|
PRIMARY KEY в таблице OF XMLTYPE - как?
|
|||
---|---|---|---|
#18+
Правильный Вася, Код: 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.
В твоем XML PK это WarehouseId. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 01:49 |
|
PRIMARY KEY в таблице OF XMLTYPE - как?
|
|||
---|---|---|---|
#18+
Спасибо, но что-то не получается переложить на свою схему. Пробую так: Код: plsql 1. 2. 3.
РугаетсяORA-19276: XPST0005 - XPath step specifies an invalid element/attribute name: (Warehouse) Пробовал по-разному путь указать, но элемент всё равно не находит :( Кстати говоря, VIRTUAL COLUMNS можно указать только тогда, когда схема зарегистрирована как BINARY XML. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2020, 23:37 |
|
PRIMARY KEY в таблице OF XMLTYPE - как?
|
|||
---|---|---|---|
#18+
Правильный Вася, В примере был XPath на атрибут элемента, а у тебя простой элемент. Попробуй убрать @ в XPath . ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2020, 09:55 |
|
PRIMARY KEY в таблице OF XMLTYPE - как?
|
|||
---|---|---|---|
#18+
Sah В примере был XPath на атрибут элемента, а у тебя простой элемент. Попробуй убрать @ в XPath . Да пробовал по-разному путь, в т.ч. и без @ Ошибка всё та же. Вот код регистрации схемы в БД: Код: 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.
В нём и оригинальный текст схемы без Оракловых довесков, появляющихся после регистрации. Дальнейшие попытки уже описаны выше. Зашёл в тупик :( ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2020, 20:14 |
|
PRIMARY KEY в таблице OF XMLTYPE - как?
|
|||
---|---|---|---|
#18+
Правильный Вася Дальнейшие попытки уже описаны выше. Зашёл в тупик :( Ты бы почитал что есть XML, namespace, etc. Код: 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. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2020, 22:20 |
|
PRIMARY KEY в таблице OF XMLTYPE - как?
|
|||
---|---|---|---|
#18+
SY, Премного благодарен. Про XSD и XML читал и продолжаю читать, но английский оригинал тяжеловат для восприятия, с наскока не получается всё сразу осилить. Кстати, есть странности у созданного виртуального поля: Код: plsql 1. 2. 3. 4. 5. 6.
1. Оно обнуляемое! Хотя:• A primary key constraint combines a NOT NULL constraint and a unique constraint in a single declaration. 2. Оно почему-то трактуется как скрытое и НЕ юзером созданное, хотя создано явно пользователем и без попыток сделать его невидимым. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2020, 01:31 |
|
PRIMARY KEY в таблице OF XMLTYPE - как?
|
|||
---|---|---|---|
#18+
Похоже, я нашёл ещё один путь создания первичного ключа в XMLTYPE-таблице, но уже для случая, когда схема зарегистрирована не как BINARY: Код: plsql 1. 2. 3. 4. 5.
Не знаю, насколько это легально - использовать внутрисистемные имена полей. Но как же всё-таки использовать опцию OBJECT IDENTIFIER IS PRIMARY KEY ? В твоём варианте PK создаётся отдельно, значит при создании таблицы эту опцию не указать. В моём варианте тоже не даёт, хотя PK определён на этапе создания таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2020, 01:47 |
|
PRIMARY KEY в таблице OF XMLTYPE - как?
|
|||
---|---|---|---|
#18+
Правильный Вася Но как же всё-таки использовать опцию OBJECT IDENTIFIER IS PRIMARY KEY ? OBJECT IDENTIFIER IS PRIMARY KEY может использоваться только тогда когда PK создан на поле/поля объектного типа. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2020, 13:36 |
|
PRIMARY KEY в таблице OF XMLTYPE - как?
|
|||
---|---|---|---|
#18+
SY когда PK создан на поле/поля объектного типа По сути, XMLTYPE - тоже объектный тип, хоть и особенный. Но даже если это и не совсем так, то как быть с OID_clause в документации XMLTABLE ? Он там есть, потому и вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2020, 21:38 |
|
|
start [/forum/topic.php?fid=52&msg=40007594&tid=1880807]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 252ms |
0 / 0 |