|
|
|
Разбить файл клоб на отбельные pl/sql коамнды
|
|||
|---|---|---|---|
|
#18+
Добрый день есть некий фал *.sql с набором различных DDL команд create table T_WEB_ORDER_HEAD ( web_order_head_id NUMBER not null, date_insert DATE, ret_date_order VARCHAR2(500), ret_order_id VARCHAR2(500), partner_make_id VARCHAR2(500), partner_delivery_id VARCHAR2(500), web_order_source VARCHAR2(500), web_order_number VARCHAR2(500), ret_people_name VARCHAR2(500), ret_people_phone VARCHAR2(500), asna_pay_type_name VARCHAR2(500), asna_pay_type_id VARCHAR2(500), ret_discount_doc_number VARCHAR2(500), is_asna_econ NUMBER, is_asna_cooperative_id VARCHAR2(500), time_change_order VARCHAR2(200), external_system_id NUMBER not null, change_id NUMBER not null, ret_client_email VARCHAR2(100), ret_client_comment VARCHAR2(1000), ret_pharmacy_address VARCHAR2(1000), ret_client_address VARCHAR2(1000), rezerv_date VARCHAR2(100), with_transfer VARCHAR2(100), urgent_delivery VARCHAR2(100), product_sum VARCHAR2(100), delivery_price VARCHAR2(100), transfer_price VARCHAR2(100), price VARCHAR2(100), delivery_name VARCHAR2(100), delivery_id VARCHAR2(100), employ_id NUMBER, remote_partner_id NUMBER, comment_text VARCHAR2(1000) ); / -- Add comments to the columns comment on column T_WEB_ORDER_HEAD.date_insert is 'Дата вставки заказа'; comment on column T_WEB_ORDER_HEAD.ret_date_order is 'Дата создания заказа в системе'; comment on column T_WEB_ORDER_HEAD.ret_order_id is 'уникальный код заказа в системе'; comment on column T_WEB_ORDER_HEAD.partner_make_id is 'уникальный код аптеки, на которой сделан заказ в системе'; comment on column T_WEB_ORDER_HEAD.partner_delivery_id is 'уникальный код аптеки, которая выдает заказ в системе'; comment on column T_WEB_ORDER_HEAD.web_order_source is 'источник заказа (телефон, почта и т.п.)'; comment on column T_WEB_ORDER_HEAD.web_order_number is 'номер заказа в системе'; comment on column T_WEB_ORDER_HEAD.ret_people_name is 'имя покупателя из системы'; comment on column T_WEB_ORDER_HEAD.ret_people_phone is 'номер телефона из системы'; comment on column T_WEB_ORDER_HEAD.asna_pay_type_name is 'тип оплаты (АСНА) из системы'; comment on column T_WEB_ORDER_HEAD.asna_pay_type_id is ' ИД типа оплаты по справочнику АСНА из системы'; comment on column T_WEB_ORDER_HEAD.ret_discount_doc_number is 'дисконтная карта из системы'; comment on column T_WEB_ORDER_HEAD.is_asna_econ is 'признак АСНА-Экономия (0 - нет, 1 - да)'; comment on column T_WEB_ORDER_HEAD.is_asna_cooperative_id is 'ИД совместной покупки (АСНА)'; comment on column T_WEB_ORDER_HEAD.time_change_order is 'Дата изменения'; comment on column T_WEB_ORDER_HEAD.external_system_id is 'Код системы заказа'; comment on column T_WEB_ORDER_HEAD.ret_client_email is 'email из системы'; comment on column T_WEB_ORDER_HEAD.ret_client_comment is 'Комментарий клиента из системы'; comment on column T_WEB_ORDER_HEAD.ret_pharmacy_address is 'Адрес аптеки на который был создан заказ из системы'; comment on column T_WEB_ORDER_HEAD.ret_client_address is 'Адрес клиента из системы'; comment on column T_WEB_ORDER_HEAD.employ_id is 'Ссылка на исполнителя'; comment on column T_WEB_ORDER_HEAD.remote_partner_id is 'Ссылка на аптеку для обменов'; / -- Create/Recreate primary, unique and foreign key constraints alter table T_WEB_ORDER_HEAD add constraint PK_WEB_ORDER_HEAD_ID primary key (WEB_ORDER_HEAD_ID); alter table T_WEB_ORDER_HEAD add constraint FK_WEB_HEAD_TO_EXT_SYS_ID foreign key (EXTERNAL_SYSTEM_ID) references T_EXTERNAL_SYSTEMS (EXTERNAL_SYSTEM_ID) novalidate; alter table T_WEB_ORDER_HEAD add constraint FK_WOH_EMP foreign key (EMPLOY_ID) references T_EMPLOY (EMPLOY_ID); / -- Create sequence create sequence sq_web_order_head_id minvalue 1 maxvalue 9999999999999999999 start with 1 increment by 1; / CREATE OR REPLACE TRIGGER tr_web_order_head_biu before insert or update on T_WEB_ORDER_HEAD for each row declare begin if :new.web_order_head_id is null then select sq_web_order_head_id.nextval into :new.web_order_head_id from dual; end if; :new.remote_partner_id := pk_system.GetMyPartnerID; select f_ret_change_id into :new.change_id from dual; end tr_web_order_head_biu; / ......... храниться в поле клоб в базе необходимо разбить этот файл на отдельные команды. чтобы выполнить через execute immediate по одной пробовал такой командой но криво выгружает триггеры и пакеты select to_char(regexp_substr(blob_field, '[^/;]+', 1, level) ) from T_DDL_BLOB_test t CONNECT BY level <100 если у кого-то опыт подобной работы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 13:50 |
|
||
|
Разбить файл клоб на отбельные pl/sql коамнды
|
|||
|---|---|---|---|
|
#18+
ilyuha111хранитьсяЕсли бы это был sqlplus-скрипт, то dbms_scheduler. В 12.1 случайно включили dbms_sqlplus_script, но в 12.2 выпилили. Но, поскольку это что-то наколеночное, то не факт, что оно достаточно продумано для автоматического применения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 14:55 |
|
||
|
Разбить файл клоб на отбельные pl/sql коамнды
|
|||
|---|---|---|---|
|
#18+
Для начала - скрипт кривой. Как ты думаешь что будет при выполнении скажем: Код: plsql 1. 2. 3. 4. 5. 6. 7. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 15:08 |
|
||
|
Разбить файл клоб на отбельные pl/sql коамнды
|
|||
|---|---|---|---|
|
#18+
SYДля начала - скрипт кривой.Автор не заявлял, что это скрипт sqlplus'а. Вероятно этот скрипт используется в какой-нибудь поделке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 15:19 |
|
||
|
Разбить файл клоб на отбельные pl/sql коамнды
|
|||
|---|---|---|---|
|
#18+
-2-SYДля начала - скрипт кривой.Автор не заявлял, что это скрипт sqlplus'а. Вероятно этот скрипт используется в какой-нибудь поделке. .. если поделка приличная, то делась по мотивам синтаксиса таки sqlplus'а , а значит и вероятно ожидать схожего поведения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 16:53 |
|
||
|
Разбить файл клоб на отбельные pl/sql коамнды
|
|||
|---|---|---|---|
|
#18+
orawishесли поделка приличная, то делась по мотивам синтаксиса таки sqlplus'аOracle SQL Developer за приличную поделку сойдет? Интерактивное выполнение скрипта пропускает лишние слешы: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 17:06 |
|
||
|
Разбить файл клоб на отбельные pl/sql коамнды
|
|||
|---|---|---|---|
|
#18+
-2-, да уж.. ожидать схожего поведения можно, но ожидать - не значит дождаться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 17:14 |
|
||
|
Разбить файл клоб на отбельные pl/sql коамнды
|
|||
|---|---|---|---|
|
#18+
ilyuha111, разделителей используйте не оба, а один / в таком случае вы разделите файл на команду_или_группу_команд а дальнейший разбор группы_команд на отдельные команды не факт,что вообще вам нужен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 17:23 |
|
||
|
Разбить файл клоб на отбельные pl/sql коамнды
|
|||
|---|---|---|---|
|
#18+
orawishilyuha111, разделителей используйте не оба, а один / в таком случае вы разделите файл на команду_или_группу_команд а дальнейший разбор группы_команд на отдельные команды не факт,что вообще вам нужен Добрый день один разделитель отлично работает когда в скрипте нет триггеров или пакетов вопрос можно ли регулярным вырождением это вцепить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 14:23 |
|
||
|
Разбить файл клоб на отбельные pl/sql коамнды
|
|||
|---|---|---|---|
|
#18+
ilyuha111один разделитель отлично работает когда в скрипте нет триггеров или пакетов У тебя недостаточно компетенций судить о прекрасностях. ilyuha111вырождениемРегулярки лишь малая часть лексических парсеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 14:35 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39740373&tid=1883107]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
92ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 466ms |

| 0 / 0 |
