Skip to content

Commit 5348322

Browse files
committed
Preparing Oracle package T4SQL.CMD
1 parent dd0049c commit 5348322

File tree

3 files changed

+90
-3
lines changed

3 files changed

+90
-3
lines changed

T4SQLTemplateLibrary/Databases/Oracle/T4SQLDB/Scripts/4-Packages/01-META.pck

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,17 @@ FUNCTION MATCH_TABLE_DEFINITION
5050
) RETURN BOOLEAN;
5151

5252

53+
PROCEDURE EXECUTE_AUTONOMOUS
54+
(
55+
inSql_Stmt VARCHAR2
56+
);
57+
58+
PROCEDURE EXECUTE_AUTONOMOUS
59+
(
60+
inSql_Stmt CLOB
61+
);
62+
63+
5364
PROCEDURE GET_TABLE_IN_TRIGGER
5465
(
5566
inCall_Stack VARCHAR2, -- DBMS_UTILITY.FORMAT_CALL_STACK
@@ -195,6 +206,26 @@ BEGIN
195206
END MATCH_TABLE_DEFINITION;
196207

197208

209+
PROCEDURE EXECUTE_AUTONOMOUS
210+
(
211+
inSql_Stmt VARCHAR2
212+
) AS
213+
PRAGMA AUTONOMOUS_TRANSACTION;
214+
BEGIN
215+
EXECUTE IMMEDIATE inSql_Stmt;
216+
END EXECUTE_AUTONOMOUS;
217+
218+
219+
PROCEDURE EXECUTE_AUTONOMOUS
220+
(
221+
inSql_Stmt CLOB
222+
) AS
223+
PRAGMA AUTONOMOUS_TRANSACTION;
224+
BEGIN
225+
EXECUTE IMMEDIATE inSql_Stmt;
226+
END EXECUTE_AUTONOMOUS;
227+
228+
198229
PROCEDURE GET_TABLE_IN_TRIGGER
199230
(
200231
inCall_Stack VARCHAR2, -- DBMS_UTILITY.FORMAT_CALL_STACK
@@ -268,12 +299,12 @@ PROCEDURE CREATE_WORKITEM_TRIGGER
268299
-- tSchema_Name VARCHAR2(22) := PARSENAME(inWorkitem_Table, 2);
269300
tTable_Name VARCHAR2(22) := PARSENAME(inWorkitem_Table, 1);
270301
BEGIN
271-
EXECUTE IMMEDIATE 'CREATE OR REPLACE TRIGGER TRG_' || tTable_Name || '_IU
302+
EXECUTE_AUTONOMOUS('CREATE OR REPLACE TRIGGER TRG_' || tTable_Name || '_IU
272303
AFTER INSERT OR UPDATE ON ' || inWorkitem_Table || '
273304
FOR EACH ROW
274305
BEGIN
275306
T4SQL.META.COPY_PROPERTY_DEFAULT(DBMS_UTILITY.FORMAT_CALL_STACK, :new.WORKITEM_NAME, :new.TEMPLATE_NAME);
276-
END;';
307+
END;');
277308
END CREATE_WORKITEM_TRIGGER;
278309

279310

T4SQLTemplateLibrary/Databases/Oracle/T4SQLDB/Scripts/4-Packages/02-ENGINE.pck

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,15 @@ PROCEDURE LIST_DEFAULT_PROPERTY
111111
);
112112

113113

114+
PROCEDURE COMPILE_WORKITEM
115+
(
116+
inWorkitem_Table VARCHAR2,
117+
inWorkitem_Name VARCHAR2,
118+
inCompiled_Error VARCHAR2,
119+
inObject_Code CLOB
120+
);
121+
122+
114123
PROCEDURE LOG_SYS_ERROR
115124
(
116125
inReference NVARCHAR2,
@@ -460,6 +469,30 @@ BEGIN
460469
END LIST_DEFAULT_PROPERTY;
461470

462471

472+
PROCEDURE COMPILE_WORKITEM
473+
(
474+
inWorkitem_Table VARCHAR2,
475+
inWorkitem_Name VARCHAR2,
476+
inCompiled_Error VARCHAR2,
477+
inObject_Code CLOB
478+
) AS
479+
tSQL VARCHAR2(512);
480+
BEGIN
481+
tSQL := 'UPDATE ' || inWorkitem_Table || '
482+
SET
483+
COMPILED_TIME = SYSTIMESTAMP,
484+
COMPILED_ERROR = :Compiled_Error,
485+
OBJECT_CODE = :Object_Code,
486+
START_BUILD = ''N''
487+
WHERE
488+
WORKITEM_NAME = :Workitem_Name
489+
';
490+
491+
EXECUTE IMMEDIATE tSQL USING inCompiled_Error, inObject_Code, inWorkitem_Name;
492+
493+
END COMPILE_WORKITEM;
494+
495+
463496
PROCEDURE LOG_SYS_ERROR
464497
(
465498
inReference NVARCHAR2,

T4SQLTemplateLibrary/Databases/Oracle/T4SQLDB/Scripts/4-Packages/03-CMD.pck

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ CREATE OR REPLACE PACKAGE T4SQL.CMD IS
99
-- You must not remove this notice, or any other, from this software.
1010
--
1111
-- Original Author: Abel Cheng <[email protected]>
12-
-- Created Date: October ?15, ?2013, ??11:30:21 PM
12+
-- Created Date: October 15, 2013, 11:30:21 PM
1313
-- Primary Host: http://t4sql.codeplex.com
1414
-- Change Log:
1515
-- Author Date Comment
@@ -22,10 +22,33 @@ CREATE OR REPLACE PACKAGE T4SQL.CMD IS
2222
----------------------------------------------------------------------------------------------------
2323

2424

25+
PROCEDURE BUILD_SCRIPTS
26+
(
27+
inWorkitem_Table VARCHAR2,
28+
inSearch_Conditions VARCHAR2,
29+
outGenerated_Scripts OUT CLOB
30+
);
31+
32+
2533
END CMD;
2634
/
2735
CREATE OR REPLACE PACKAGE BODY T4SQL.CMD IS
2836

2937

38+
PROCEDURE BUILD_SCRIPTS
39+
(
40+
inWorkitem_Table VARCHAR2,
41+
inSearch_Conditions VARCHAR2,
42+
outGenerated_Scripts OUT CLOB
43+
) AS
44+
BEGIN
45+
IF NOT T4SQL.META.EXISTS_TABLE(inWorkitem_Table) THEN
46+
RAISE_APPLICATION_ERROR(-20942, 'inWorkitem_Table table does not exist in the database');
47+
END IF;
48+
49+
50+
END BUILD_SCRIPTS;
51+
52+
3053
END CMD;
3154
/

0 commit comments

Comments
 (0)