Oracleはuser_tab_columnsというテーブルにテーブル情報を格納している。
これを使うとファイルレイアウトが作れる。
ASPでのサンプル(部分)
Response.Write "<table border=1 style='font-size:9pt'>"
Response.Write "<tr bgcolor=#cccccc><td>No</td><td>フィールド名</td>"
Response.Write "<td>備考</td><td>型</td><td>長さ</td><td>Null</td></tr>"
StrSQL="select A.*,B.comments " _
& "from user_tab_columns A, user_col_comments B " _
& "where A.table_name = B.table_name and A.column_name = B.column_name and " _
& "A.table_name = '" & tbl & "' order by A.column_id"
Set ObjRS = session("OraDatabase").CreateDynaset(StrSQL, ORADYN_DEFAULT)
Do Until ObjRS.EOF
Response.Write "<tr><td align=right>" & ObjRS("COLUMN_ID") & "</td>"
Response.Write "<td>" & ObjRS("COLUMN_NAME") & "</td><td>" & ObjRS("COMMENTS") & " </td>"
If ObjRS("DATA_TYPE")="CHAR" Or ObjRS("DATA_TYPE")="VARCHAR2" Then
Response.Write "<td>" & ObjRS("DATA_TYPE") & "</td>"
Response.Write "<td align=right>" & ObjRS("DATA_LENGTH") & "</td>"
ElseIf ObjRS("DATA_TYPE")="NUMBER" Then
If IsNull(ObjRS("DATA_PRECISION")) Then
Response.Write "<td>INT</td><td> </td>"
Else
Response.Write "<td>" & ObjRS("DATA_TYPE") & "</td>"
Response.Write "<td align=right>" & ObjRS("DATA_PRECISION") & "." & ObjRS("DATA_SCALE") & "</td>"
End If
Else
Response.Write "<td>" & ObjRS("DATA_TYPE") & "</td><td> </td>"
End If
Response.Write "<td>" & ObjRS("NULLABLE") & "</td></tr>"
ObjRS.MoveNext
Loop
Set ObjRS = Nothing
Response.Write "</table>"
#先日「音楽寅さん」という番組を見て大笑いしてしまった。一音階だけでも音楽になるんだなあ(感心)
これを使うとファイルレイアウトが作れる。
ASPでのサンプル(部分)
Response.Write "<table border=1 style='font-size:9pt'>"
Response.Write "<tr bgcolor=#cccccc><td>No</td><td>フィールド名</td>"
Response.Write "<td>備考</td><td>型</td><td>長さ</td><td>Null</td></tr>"
StrSQL="select A.*,B.comments " _
& "from user_tab_columns A, user_col_comments B " _
& "where A.table_name = B.table_name and A.column_name = B.column_name and " _
& "A.table_name = '" & tbl & "' order by A.column_id"
Set ObjRS = session("OraDatabase").CreateDynaset(StrSQL, ORADYN_DEFAULT)
Do Until ObjRS.EOF
Response.Write "<tr><td align=right>" & ObjRS("COLUMN_ID") & "</td>"
Response.Write "<td>" & ObjRS("COLUMN_NAME") & "</td><td>" & ObjRS("COMMENTS") & " </td>"
If ObjRS("DATA_TYPE")="CHAR" Or ObjRS("DATA_TYPE")="VARCHAR2" Then
Response.Write "<td>" & ObjRS("DATA_TYPE") & "</td>"
Response.Write "<td align=right>" & ObjRS("DATA_LENGTH") & "</td>"
ElseIf ObjRS("DATA_TYPE")="NUMBER" Then
If IsNull(ObjRS("DATA_PRECISION")) Then
Response.Write "<td>INT</td><td> </td>"
Else
Response.Write "<td>" & ObjRS("DATA_TYPE") & "</td>"
Response.Write "<td align=right>" & ObjRS("DATA_PRECISION") & "." & ObjRS("DATA_SCALE") & "</td>"
End If
Else
Response.Write "<td>" & ObjRS("DATA_TYPE") & "</td><td> </td>"
End If
Response.Write "<td>" & ObjRS("NULLABLE") & "</td></tr>"
ObjRS.MoveNext
Loop
Set ObjRS = Nothing
Response.Write "</table>"
#先日「音楽寅さん」という番組を見て大笑いしてしまった。一音階だけでも音楽になるんだなあ(感心)