|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
Братья! Как обратиться к псевдо таблице в After Trigger-е, что бы связать её с основной таблицей? (если это возможно, либо подскажите лайфхак) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 11:54 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
PaulWist Братья! Как обратиться к псевдо таблице в After Trigger-е, что бы связать её с основной таблицей? (если это возможно, либо подскажите лайфхак) Расскажите, что такое "псевдо таблица" и где о ней можно почитать в документации Oracle. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 12:03 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
After trigger for statement, очевидно? Лучше задачу обозначьте. А то обычно спрашивают про способ решения, без уяснения задачи преждевременно его обсуждать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 12:04 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
dmdmdm, Не будем гадать. Пусть ТС объяснит свою проблему "нормально, на гражданском языке" (с) Джентльмены удачи ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 12:07 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
SQL*Plus Расскажите, что такое "псевдо таблица" и где о ней можно почитать в документации Oracle. ОК, не псевдотаблица, а Pseudorecords (пасевдозаписи) :OLD or the :NEW value dmdmdmAfter trigger for statement, очевидно? Лучше задачу обозначьте. А то обычно спрашивают про способ решения, без уяснения задачи преждевременно его обсуждать. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Что хочу: в табличку лога записать при update по одной записи из таблички test (distinct, те что бы там было две записи f1 = 1, 2), как это можно сделать в триггере? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 12:21 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
PaulWist Что хочу: в табличку лога записать при update по одной записи из таблички test уникальный индекс на test1, + exception ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 12:44 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
Stax уникальный индекс на test1, + exception ..... stax Ммм, вы предлагаете создать в триггере уникальный индекс? неожиданно ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 12:51 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
PaulWist Stax уникальный индекс на test1, + exception ..... stax Ммм, вы предлагаете создать в триггере уникальный индекс? неожиданно почему в триггере, создать индекс для таблички лога (тест1) create unique index i on test1(f1); в триггере обработать exception или хинт insert /*+ ignore_row_on_dupkey_index зы + разобратся с null для f1 ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 13:27 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
Stax почему в триггере, создать индекс для таблички лога (тест1) create unique index i on test1(f1); в триггере обработать exception или хинт insert /*+ ignore_row_on_dupkey_index зы + разобратся с null для f1 ..... stax Нет проблемы написать constraint, но он не заполнит табличку test1, мне надо выяснить какие записи из test.f1 были затронуты триггером, собственно в этом вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 13:43 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
Создайте compound trigger. В after for each rows заполняешь коллекцию уникальную. В after statement обрабатываешь коллекцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 13:55 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
PaulWist Нет проблемы написать constraint, но он не заполнит табличку test1, мне надо выяснить какие записи из test.f1 были затронуты триггером, собственно в этом вопрос. Вам надо убрать дубликаты только для конкретного (текущего) оператора update? если да то 1) 22423127 (не обязательно компаунд) 2) в логе + ид вставки (напр из последовательности) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 14:10 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
Алымов Анатолий Создайте compound trigger. В after for each rows заполняешь коллекцию уникальную. В after statement обрабатываешь коллекцию. например? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 14:11 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
Ролг Хупин, https://docs.oracle.com/database/121/LNPLS/triggers.htm#GUID-B5E654D9-5875-40EC-AE24-E3A8CB37C9C5__CIHGJFAB ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 14:17 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
PaulWist Что хочу: в табличку лога записать при update по одной записи из таблички test (distinct, те что бы там было две записи f1 = 1, 2), как это можно сделать в триггере? При update из разных сессий distinct в табличке лога не получится. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 14:51 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#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. 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. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 14:53 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
ANB-ANB, Отлично. Спасибо. То есть, "псевдо таблицу" формируем "руками", хорошо... тогда вопрос: можно ли связать "псевдо таблицу" с исходной таблицей (select inner join) и в какой секции это можно сделать? (trigger for each row вольности типа select from таблица с триггером - не позволяет). ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 15:20 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
PaulWist Код: plsql 1. 2.
Что хочу: в табличку лога записать при update по одной записи из таблички test (distinct, те что бы там было две записи f1 = 1, 2), как это можно сделать в триггере? повторно если еще раз выполнить update test set f1 = f1 в табличке лога сколько записей будет (2 or 4)? ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 15:31 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
Stax повторно если еще раз выполнить update test set f1 = f1 в табличке лога сколько записей будет (2 or 4)? ..... stax По большому счёту это не важно 2 или 4 (был просто пример, что бы на пальцах рассказали как надо делать), нужен был принцип получения обработанных записей в триггере. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 15:46 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
PaulWist Stax повторно если еще раз выполнить update test set f1 = f1 в табличке лога сколько записей будет (2 or 4)? ..... stax По большому счёту это не важно 2 или 4 (был просто пример, что бы на пальцах рассказали как надо делать), нужен был принцип получения обработанных записей в триггере. Писал разные вещи, но от ответа ушел ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 15:50 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
PaulWistнужен был принцип получения обработанных записей в триггере. Обычно для таких задач используют триггера ON EACH ROW. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 15:58 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
PaulWist По большому счёту это не важно 2 или 4 нет, ето важно если 2, то нужен (желателен) индекс если 4, индекс не нужен, реализовать через коллекцию ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 16:01 |
|
AFTER TRIGGER
|
|||
---|---|---|---|
#18+
Продолжу. Как заставить в триггере работать dynamic-sql или если есть возможность использовать PRIVATE TEMPORARY TABLE без динамики? На инструкции EXECUTE IMMEDIATE получаю ошибку - ORA-01031: привилегий недостаточно. Какие права нужны и как их назначить? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2022, 15:18 |
|
|
start [/forum/topic.php?fid=52&msg=40127837&tid=1879589]: |
0ms |
get settings: |
24ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
386ms |
get tp. blocked users: |
1ms |
others: | 371ms |
total: | 864ms |
0 / 0 |