-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrsduadmin_to_xml.tcl
141 lines (117 loc) · 3.19 KB
/
rsduadmin_to_xml.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
package require tclodbc
#package require xml
#package require dom
# ===============================================
set tns "rsdu2"
set usr "rsduadmin" ; # admin nov_ema
set pwd "passme" ; # passme qwertyqaz
set filename rsdu2.log
set ph [info script]
if {$ph==""} {
set ph rsdu2.log
} else {
set ph [file rootname $ph ].log
}
set rf [ open $ph "w+" ]
# Ա㬨㡥ꡱ捻鮥 衁
database db $tns $usr $pwd
db set autocommit off
# ===============================================
set owner "RSDUADMIN"
set strSQL1 "SELECT object_name FROM all_objects WHERE owner = '%s' AND object_type = 'TABLE'"
set strSQL2 "SELECT column_name FROM all_tab_columns WHERE table_name = '%s'"
set strSQL3 "SELECT * FROM %s"
# Ա㬨㡥ꡐϋڍ
# 𐬠���SE_EXT_CONNECT_OIK CONNECT => SBOR_STAND_READ = (SELECT = da_dev_desc ) BASE_STAND_READ
if {$usr!="rsduadmin"} {
db "SET ROLE SBOR_STAND_READ , BASE_STAND_READ"
db "select * from session_roles"
}
set s1 [ format $strSQL1 $owner ]
foreach {r1} [ db $s1 ] {
set idName [lindex $r1 0]
puts $rf "-- $idName"
set s2 [ format $strSQL2 $idName ]
foreach {r2} [ db $s2 ] {
set idNameCol [lindex $r2 0]
puts $rf "-- -- $idNameCol"
}
}
close $rf
# ===============================================
exit ;
# ===============================================
# <?xml version="1.0" encoding="utf-8" standalone="yes"?>
# <Properties>
# <Author> </Author>
# <Created> </Created>
# <Company> </Company>
# <Version> </Version>
# </Properties>
# <Styles>
# //default style
# //Datetime style
# //Hyperlink style
# </Styles>
# <dataset>
# <!-- 鷠 TableName-->
# <table>
# <name>TableName</name>
# <DESCRIBE>
# <!-- 𐰠ᮨ�# </DESCRIBE>
# <Row>
# <col1> </col1>
# <col2> </col2>
# <col3> </col3>
# ...
# </Row>
# </table>
# ....
# </dataset>
# ===============================================
set filename rsdu2.xml
set ph [info script]
if {$ph==""} {
set ph rsdu2.xml
} else {
set ph [file rootname $ph ].xml
}
set rf [ open $ph "w+" ]
puts $rf {<?xml version="1.0" encoding="utf-8" standalone="yes"?>}
puts $rf "<Properties>"
puts $rf " <Author>EMA</Author>"
set t1 [ clock format [ clock seconds ] -format "%T" ]
puts $rf " <Created>$t1</Created>"
puts $rf " <Company>EMA</Company>"
puts $rf " <Version>1.0</Version>"
puts $rf "</Properties>"
puts $rf "<Styles>"
puts $rf "</Styles>"
puts $rf "<DATASET>"
set s1 [ format $strSQL1 $owner ]
foreach {r1} [ db $s1 ] {
set idName [lindex $r1 0]
puts $rf " <!-- $idName -->"
puts $rf " <$idName>"
set s2 [ format $strSQL2 $idName ]
set lCol { }
foreach {r2} [ db $s2 ] {
set idNameCol [lindex $r2 0]
puts $rf " <$idNameCol>"
lappend lCol $idNameCol
}
set s3 [ format $strSQL3 $idName ]
foreach {r3} [ db $s3 ] {
for {set i 0} {$i<[llength $lCol]} { incr 1} {
set idNameColT [lindex $lCol $i]
set valueColT [lindex $r3 $i]
puts $rf " <$idNameCol>$valueColT</$idNameCol>"
}
}
puts $rf " </$idName>"
}
puts $rf "</DATASET>"
close $rf
# Ƞ뱻㡥ꡱ捻鮥 衁
# db commit
db disconnect