Skip to content

Commit 6e932d0

Browse files
unknownunknown
authored andcommitted
TODO: Identificar o porque nao esta considerando o final do arquivo de leitura
1 parent db8c7c2 commit 6e932d0

3 files changed

Lines changed: 13 additions & 28 deletions

File tree

sqlscriptparser.lex

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
%}
44
%option noyywrap
55
%%
6-
"(" /*ignore*/
76
[ ]*(DAT|COD|DES|IND|JSON|XML|IDT|NUM|FLG|NAM)\_[A-Z0-9\_]+ { yylval.sval = strdup(yytext); return COLUMN;}
87
"CREATE TABLE" { yylval.sval = strdup(yytext); return CREATE_TABLE;}
98
"CREATE INDEX" { yylval.sval = strdup(yytext); return CREATE_INDEX;}
@@ -15,17 +14,21 @@
1514
[ ]+CHECK[ ]* { yylval.sval = strdup(yytext); return CHECK;}
1615
"ADD CONSTRAINT" { yylval.sval = strdup(yytext); return ADD_CONSTRAINT;}
1716
"\n" {return FIM_COMANDO;}
17+
"(" /*ignore*/
1818
")" {}
1919
"/" {}
2020
"'" {}
2121
"-" {}
22+
"_" {}
2223
";" {}
2324
"=" {}
2425
":" {}
2526
">" {}
2627
"<" {}
2728
"." {}
2829
"*" {}
29-
[\sA-Z0-9\_a-z\(\)\,]* /*ignore*/
30+
"," {}
31+
[A-Z0-9]* /*ignore*/
32+
3033
%%
3134

sqlscriptparser.y

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ instrucao: CREATE_TABLE OWNER_OBJECT FIM_COMANDO {
5050
//printf("select case count(1) when 1 then 'ok' else 'error' end from dba_tables t where t.owner='%s' and t.table_name='%s';\n",owner,object);
5151
}
5252

53-
| CREATE_INDEX OWNER_OBJECT OWNER_OBJECT FIM_COMANDO {
53+
| CREATE_INDEX OWNER_OBJECT OWNER_OBJECT COLUMN FIM_COMANDO {
5454
char *owner;
5555
char *object;
5656
owner = strtok ($2,".");
@@ -64,7 +64,7 @@ instrucao: CREATE_TABLE OWNER_OBJECT FIM_COMANDO {
6464
printf("\n--CREATE INDEX\n%s\n",str);
6565
//printf("select case count(1) when 1 then 'ok' else 'error' end from dba_indexes t where t.owner='%s' and t.index_name='%s';\n",owner,object);
6666
}
67-
| ALTER_TABLE OWNER_OBJECT ADD_CONSTRAINT FK_NAME FK OWNER_OBJECT FIM_COMANDO {
67+
| ALTER_TABLE OWNER_OBJECT ADD_CONSTRAINT FK_NAME FK COLUMN OWNER_OBJECT COLUMN FIM_COMANDO {
6868
char *owner;
6969
char *object;
7070
owner = strtok ($2,".");
@@ -112,7 +112,7 @@ instrucao: CREATE_TABLE OWNER_OBJECT FIM_COMANDO {
112112
| FIM_COMANDO {}
113113
| OWNER_OBJECT {}
114114
| FK_NAME {}
115-
| COLUMN {}
115+
| COLUMN {}
116116
//
117117
;
118118

teste.txt

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11

2-
ALTER TABLE SAFEPAY_ADM.TRANSACTION_CHECKOUT ADD CONSTRAINT TRANCHEC_CK01 CHECK( IND_CHECKOUT_TYPE IN ('W',)) ENABLE NOVALIDATE;
32

4-
ALTER TABLE SAFEPAY_ADM.TRANSACTION_CHECKOUT ADD CONSTRAINT TRANCHEC_CK01 CHECK (IND_CHECKOUT_TYPE IN ('W', 'L', 'T', 'G', 'M', 'A', 'V')) ENABLE NOVALIDATE;
53

64
DECLARE
75
RESOURCE_BUSY EXCEPTION;
@@ -98,28 +96,12 @@ END;
9896
-- INDEX P/ FK
9997
CREATE INDEX SAFEPAY_ADM.PROM_IDX02 ON SAFEPAY_ADM.PROMOTION (IDT_PAYMENT_REQUEST_MODEL) TABLESPACE TSISAFEPAY01 INITRANS 8 ONLINE;
10098

99+
ALTER TABLE SAFEPAY_ADM.TRANSACTION_CHECKOUT ADD CONSTRAINT FUCK_CK01 CHECK( IND_CHECKOUT_TYPE IN (''W'', ''L'', ''T'', ''G'', ''M'', ''A'', ''V'')) ENABLE NOVALIDATE;
101100

101+
CREATE INDEX SAFEPAY_ADM.PROM_IDX02 ON SAFEPAY_ADM.PROMOTION (IDT_PAYMENT_REQUEST_MODEL) TABLESPACE TSISAFEPAY01 INITRANS 8 ONLINE;
102102

103+
ALTER TABLE SAFEPAY_ADM.TRANSACTION_CHECKOUT ADD CONSTRAINT TRANCHEC_CK01 CHECK (IND_CHECKOUT_TYPE IN (''W'', ''L'', ''T'', ''G'', ''M'', ''A'', ''V'')) ENABLE NOVALIDATE;
103104

105+
--aaaaaa teste
104106

105-
106-
DECLARE
107-
RESOURCE_BUSY EXCEPTION;
108-
PRAGMA EXCEPTION_INIT(RESOURCE_BUSY, -00054);
109-
NAOEXECUTOU BOOLEAN := TRUE;
110-
BEGIN
111-
WHILE NAOEXECUTOU
112-
LOOP
113-
BEGIN
114-
EXECUTE IMMEDIATE 'ALTER TABLE SAFEPAY_ADM.TRANSACTION_CHECKOUT ADD CONSTRAINT TRANCHEC_CK01 CHECK (IND_CHECKOUT_TYPE IN (''W'', ''L'', ''T'', ''G'', ''M'', ''A'', ''V'')) ENABLE NOVALIDATE';
115-
NAOEXECUTOU := FALSE;
116-
DBMS_OUTPUT.PUT_LINE('RECRIADA TRANCHEC_CK01');
117-
EXCEPTION
118-
WHEN RESOURCE_BUSY THEN
119-
DBMS_LOCK.SLEEP(SECONDS =>1);
120-
WHEN OTHERS THEN
121-
RAISE;
122-
END;
123-
END LOOP;
124-
END;
125-
/
107+
bbbb

0 commit comments

Comments
 (0)