-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdbe.tcl
149 lines (116 loc) · 4.16 KB
/
dbe.tcl
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
#
# Ïîäêëþ÷àåì 2-à ïàêåòà: äëÿ ðàáîòû ñ äåðåâîì + äëÿ ïîäêëþ÷åíèÿ ê ÁÄ ÷åðåç ODBC
package require tclodbc
global tns usr pwd
global db
global rf
set tns "rsdu2" ; #"rsdu2" "RSDU_ATEC" "Postrsdu5" "poli24"
set usr "rsduadmin" ; # admin nov_ema
set pwd "passme" ; # passme qwertyqaz
#=============================================
proc LogWrite { s } {
#=============================================
global rf
if {![info exists rf]} { return }
if {$rf==""} { return }
puts $rf $s
}
#=============================================
proc LogFlush { } {
#=============================================
global rf
if {![info exists rf]} { return }
if {$rf==""} { return }
flush $rf
}
# #21 22 'Parameter1' 'Parameter1' 'select val, date, status from dual' 0 0 2 0 0
#CREATE TABLE RSDUADMIN.DBE_ACTION
#(
# ID NUMBER(11),
# ID_JOB NUMBER(11) CONSTRAINT DBE_ACTION_ID_JOB_NN NOT NULL,
# NAME VARCHAR2(255 CHAR) CONSTRAINT DBE_ACTION_NAME_NN NOT NULL,
# ALIAS VARCHAR2(255 CHAR) CONSTRAINT DBE_ACTION_ALIAS_NN NOT NULL,
# SQL_TEXT VARCHAR2(4000 CHAR) CONSTRAINT DBE_ACTION_SQL_TEXT_NN NOT NULL,
# REQUEST_TIME_OFFSET NUMBER(11) CONSTRAINT DBE_ACTION_REQUEST_OFFSET_NN NOT NULL,
# RESPONSE_TIME_OFFSET NUMBER(11) CONSTRAINT DBE_ACTION_RESPONSE_OFFSET_NN NOT NULL,
# ID_DTFIELD_TYPE NUMBER(11) CONSTRAINT DBE_ACTION_ID_DTFIELD_TYPE_NN NOT NULL,
# ENABLE_ROW_HANDLER NUMBER(1) CONSTRAINT DBE_ACTION_ROW_HANDLER_NN NOT NULL,
# ROW_HANDLER_TEXT VARCHAR2(4000 CHAR),
# ENABLE_TABLE_HANDLER NUMBER(1) CONSTRAINT DBE_ACTION_TABLE_HANDLER_NN NOT NULL,
# TABLE_HANDLER_TEXT VARCHAR2(4000 CHAR),
# ID_FILEWAV NUMBER(11) DEFAULT NULL
#)
# UPDATE DBE_ACTION SET SQL_TEXT='--', REQUEST_TIME_OFFSET=0, RESPONSE_TIME_OFFSET=0, ID_DTFIELD_TYPE=2 WHERE ID = ???
#
#=============================================
proc dbe_1 { } {
#=============================================
global db
set cntOBJ 0
set str1 "SELECT ID, SQL_TEXT, REQUEST_TIME_OFFSET, RESPONSE_TIME_OFFSET, ID_DTFIELD_TYPE FROM DBE_ACTION WHERE ID_JOB=323 ORDER BY ID"
foreach {xx} [ db $str1 ] {
set ID [ lindex $xx 0 ]
set SQL_TEXT [ lindex $xx 1 ]
set REQUEST_TIME_OFFSET [ lindex $xx 2 ]
set RESPONSE_TIME_OFFSET [ lindex $xx 3]
set ID_DTFIELD_TYPE [ lindex $xx 4 ]
set s3 "UPDATE DBE_ACTION SET SQL_TEXT='${SQL_TEXT}', REQUEST_TIME_OFFSET=$REQUEST_TIME_OFFSET, RESPONSE_TIME_OFFSET=$RESPONSE_TIME_OFFSET, ID_DTFIELD_TYPE=$ID_DTFIELD_TYPE WHERE ID = $ID ;"
# stage 1
LogWrite "$s3"
}
LogWrite "-- -- COMMIT ;"
return 0 ;
}
#=============================================
proc dbe_2 { } {
#=============================================
global db
set cntOBJ 0
set str1 "SELECT ID, SQL_TEXT, REQUEST_TIME_OFFSET, RESPONSE_TIME_OFFSET, ID_DTFIELD_TYPE FROM DBE_ACTION WHERE ID_JOB=323 ORDER BY ID"
foreach {xx} [ db $str1 ] {
set ID [ lindex $xx 0 ]
set SQL_TEXT [ lindex $xx 1 ]
set REQUEST_TIME_OFFSET 25200
set RESPONSE_TIME_OFFSET -25200
set ID_DTFIELD_TYPE 1
set s3 "UPDATE DBE_ACTION SET SQL_TEXT='${SQL_TEXT}', REQUEST_TIME_OFFSET=$REQUEST_TIME_OFFSET, RESPONSE_TIME_OFFSET=$RESPONSE_TIME_OFFSET, ID_DTFIELD_TYPE=$ID_DTFIELD_TYPE WHERE ID = $ID ;"
# stage 2
LogWrite "$s3"
}
LogWrite "-- -- COMMIT ;"
return 0 ;
}
#=============================================
proc main { } {
#=============================================
global tns usr pwd
global db
global rf
set t1 [ clock format [ clock seconds ] -format "%T" ]
puts "\n----start = $t1\n Open log file"
set tN [ clock format [ clock seconds ] -format "%Y%m%d_%H%M%S" ]
# ëîã - ôàéë
set ph [info script]
if {$ph==""} {
set ph ${tns}_pq_${tN}.log
} else {
set ph [ file rootname $ph ]_${tN}.log
}
set rf [ open $ph "w+" ]
LogWrite "--START=$t1\n"
# Óñòàíàâëèâàåì ñîåäèíåíèå ê ÁÄ
database db $tns $usr $pwd
#db set autocommit off
dbe_1
#
# Çàêðûâàåì ñîåäèíåíèå ê ÁÄ
#db commit
db disconnect
LogWrite "\n--END=$t1"
LogFlush
close $rf
set t1 [ clock format [ clock seconds ] -format "%T" ]
puts "\n----end = $t1\n Save file."
return
}
main