|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
Стоит задача создавать небольшую временную базу при нажатии пользователем кнопки на форме. Для этого в кнопке пишется приблизительно следующее: Код: plsql 1. 2.
При нажатии кнопки все происходит как запланировано, база создается, однако на экране остается окно с командной строкой sqlplus.exe, которое ждет ввода команды EXIT, и только после закрытия окна вводом этой команды или просто нажатия крестика пользователю выводится сообщение "База создана". Вопрос - как передать в sqlplus команду авто-закрытия окна после создания базы. И вообще - насколько правильно создавать базу именно этим способом? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2013, 08:19 |
|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
Kaimen, Добавь команду exit в конец c:\forms\111.sql ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2013, 11:03 |
|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
Хм... Под созданием базы действительно имеется в виду создание _базы_, а не создание, например, таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2013, 14:27 |
|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
Kaimen, судя по постам, вы начинающий. Ответ про правильность - неправильно. Вы же когда в Word работете вам не выскакивавет окошко с дос командами с просьбой его закрыть? Если пишите GUI - никаких командных строк. Тем более что на Windows это одно, на Linux другое, на Web вообще недостижимо, у пользователя не установлен SQL+, нет прав и т.д.. Вообщем и идея и реализация бред. Посмотрите в сторону 1) PL/SQL пакетов на БД 2) динамического SQL EXECUTE IMMEDIATE на БД 3) Временные таблицы CREATE GLOBAL TEMPORARY TABLE T_TEMP (C_ID NUMBER(2,0), C_NAME VARCHAR2(30), C_DATE DATE) ON COMMIT DELETE/*PRESERVE*/ ROWS; ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2013, 13:54 |
|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
Спасибо за ответы. Создавать нужно именно БАЗУ, так поставлена задача. чиста_для_самоутвержденияKaimen, судя по постам, вы начинающий. Именно так. чиста_для_самоутвержденияПосмотрите в сторону 1) PL/SQL пакетов на БД 2) динамического SQL EXECUTE IMMEDIATE на БД Про это можно поподробнее? Первый раз слышу термин "PL/SQL пакет". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 09:22 |
|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
KaimenПервый раз слышу термин "PL/SQL пакет". Тут хочу пояснить, что стоит задача создать форму в Oracle Forms 11g, из которой пользователь и будет генерировать базу. Вот в данном случае "PL/SQL пакет на БД" как может выглядеть (есть ли образцы?) и может ли он быть помещен в триггер OnButtonPress? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 10:33 |
|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
Замечу также, что в триггере нажатия кнопки в Oracle Forms не компилируется EXECUTE IMMEDIATE. Ошибка: "Эта возможность еще на поддерживается в программах на стороне клиента". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 10:41 |
|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
На Forms-клиенте динамический sql можно использовать через forms_ddl или встроенный пакет exec_sql. Или же можно вынести код на сервер и использовать execute immediate, dbms_sql и т.д. Хотел бы, однако, повторить свой вопрос на счет "создания базы". Какие действия, с вашей точки зрения, входят в понятие "создание базы"? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 11:32 |
|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
-=APS=-Хотел бы, однако, повторить свой вопрос на счет "создания базы". Какие действия, с вашей точки зрения, входят в понятие "создание базы"? Вот образец. Код: 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.
-=APS=-На Forms-клиенте динамический sql можно использовать через forms_ddl или встроенный пакет exec_sql. Как эту радость подцепить к моему Forms? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 12:25 |
|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
То, что приведено в скрипте - всего лишь создание нескольких таблиц в схеме пользователя otk. Правильнее будет описывать вашу задачу именно, как "создать несколько таблиц", а не "создать базу". Делать commit после create table - не нужно, т.к. это DDL операция. Кстати, а что произойдет, если ваш пользователь нажмет эту кнопку еще раз, не задумывались? И ключей у вас на таблицах нет в принципе? В общем, есть подозрение, что вы выбрали не самый удачный способ реализации вашей задачи. Кстати, не совсем понятно, в чем она конкретно заключается. :) Вы делаете что-то типа инсталлятора, который должен развернуть какие-то структуры в БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 14:24 |
|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
-=APS=-В общем, есть подозрение, что вы выбрали не самый удачный способ реализации вашей задачи. Кстати, не совсем понятно, в чем она конкретно заключается. :) Вы делаете что-то типа инсталлятора, который должен развернуть какие-то структуры в БД? Я попытаюсь сформулировать. Есть комплекс по автоматизации области производственной деятельности, писанный 20 лет назад на oracle 5-ой версии. Т.е. псевдографика, командная строка и прочие радости жизни. Теперь необходимо перевести все это на 11 версию. Причем, с сохранением логики. Имеется полный набор как форм, так и отчетов (которые также надо переносить в Reports 11). Собственно, тот кусок, о котором я тут спрашиваю, он формирует временно-постоянную базу, на основании данных из которой затем получаются отчеты. Т.е. в интерфейсе пользователя в старой версии системы есть отдельные пункты меню, при выборе которой формируется, и что важнее - заполняется по определенным условиям данная база. Точнее, не она одна, вот еще образец. Код: 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. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404.
Заходит пользователь в это меню в строго определенное время, в соответствии с регламентом. Предприятие крупное, поэтому люди годами привыкли работать именно так. Отсюда и требование сохранить логику. Опыта у меня мягко скажем маловато, поэтому я не могу предложить оптимизацию имеющегося уже варианта, пока получается только транслировать то что есть на новую платформу. Вопросов возникает миллион, т.к. я успел понять и по данному форуму, что например тот же Oracle Reports это худшая (как минимум с точки зрения удобства разработки) из имеющихся платформ для реализации отчетов - чисто кровопийца. Ну и вот с Forms тоже возникают вопросы разной степени сложности... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 14:56 |
|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
Постарайся всю эту логику перенести в БД, в хранимую процедуру. И там ты сможешь вызывать execute immediate, через который ты можешь выполнить все, что твоей душе угодно. В том числе он позволяет выполнить clob ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 15:43 |
|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
То, что опыта и знаний маловато - это нехорошо, т.к. шишек набьёте, а это часто людей демотивирует. Прямо скажем, код приведенный вами, выдержан в стиле а-ля dBase, Clipper и т.п. 80-х годов :) Подозреваю, что он заточен исключительно на запуск одним человеком в определенное время. Создавать таблицы на лету вряд вам нужно. Код по их заполнению данными действительно можно вынести на сервер. Читайте мануалы. Хранимые процедуры вам уже порекоментовали. Concepts почитайте. Польза будет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 16:01 |
|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
-=APS=-, Спасибо, буду почитать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2013, 08:31 |
|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
Вообще то можно мигрировать формы, начиная с версии 3.5 на 11 версию. Только с промежуточными остановками, типа версии 4.5 и 6. Работать будет, но выглядит, конечно, коряво. Как то мне пришлось поднимать с 3.5 до 6i сотню форм. Ушло на это до 2-х недель. После неспеша уже переделал все заново. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2013, 11:38 |
|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
pan159, Миграция это прекрасно, но мне не подходит. Я тут пытаюсь убить 2 зайцев - сделать дело и научиться работать в Forms/Reports. Получается с переменным успехом конечно, не хватает подготовки. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2013, 10:45 |
|
Запуск SQLplus из Oracle Forms
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2013, 11:50 |
|
|
start [/forum/topic.php?fid=51&msg=38517036&tid=1878238]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
173ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 244ms |
total: | 518ms |
0 / 0 |