读取Oracle表结构数据
时间:2021-07-01 10:21:17
帮助过:2人阅读
-weight:
bold;
}
td {
width:
120px;
padding-left:
10px;
}
table {
border: 0.5px solid
#778899;
border-collapse:
collapse;
border-spacing:0
;
padding:0
;
}
</style>
<title>Oracle数据库表结构</title>
</head>
<body>
<?
php
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 数据库连接配置信息
$ora_host = ""
;
$ora_port=""
;
$ora_sid = ""
;
$ora_username = ""
;
$ora_password = ""
;
$charset = "UTF8";
### zhs16gbk ###
// 连接字符串
$ora_connstr = "
(description=(address=(protocol=tcp)
(host=".
$ora_host.")(port=".
$ora_port."
))
(connect_data=(service_name=".
$ora_sid.")))"
;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 测试连接
$conn = oci_connect(
$ora_username,
$ora_password,
$ora_connstr,‘UTF8‘
);
if (!
$conn) {
$e =
oci_error();
print htmlentities(
$e[‘message‘
]);
exit;
}else{
echo "连接Oracle成功!<br/>"
;
}
echo "用户:".
$ora_username." 服务器:".
$ora_host." 数据库:".
$ora_sid."<br/><br/>"
;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//查询用户下的表数量
$sql_showtables=‘select table_name from user_tables‘
;
$stid = oci_parse(
$conn,
$sql_showtables);
// 配置SQL语句,准备执行
if (!
$stid) {
$e = oci_error(
$conn);
print htmlentities(
$e[‘message‘
]);
exit;
}
$r = oci_execute(
$stid, OCI_DEFAULT);
// 执行SQL。OCI_DEFAULT表示不要自动commit
if(!
$r) {
$e = oci_error(
$stid);
echo htmlentities(
$e[‘message‘
]);
exit;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 打印执行结果
while(
$row = oci_fetch_row(
$stid)) {
$table_name=
$row[0
];
echo "<strong>数据表名:".
$table_name."</strong>"
;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 查询字段注释
/*$col_comments=‘select b.comments as 注释 from USER_COL_COMMENTS b where b.TABLE_NAME=upper(\‘‘.$table_name.‘\‘)‘;
$stid_col_comments = oci_parse($conn, $col_comments); // 配置SQL语句,准备执行
if (!$col_comments) {
$e = oci_error($conn);
print htmlentities($e[‘message‘]);
exit;
}
$r_col_comments = oci_execute($stid_col_comments, OCI_DEFAULT); // 执行SQL。OCI_DEFAULT表示不要自动commit
if(!$r_col_comments) {
$e = oci_error($stid_col_comments);
echo htmlentities($e[‘message‘]);
exit;
}
while($row_col_comments = oci_fetch_row($stid_col_comments)) {
//print"<td>$row_col_comments[0]</td>";
print"</tr>";
}*/
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 查询TABLE META
$table_meta=‘
select a.column_name,a.data_type,a.data_length,a.NULLABLE
from
user_tab_columns a
where a.TABLE_NAME=upper(\‘‘.
$table_name.‘\‘)‘
;
$stid_table_meta = oci_parse(
$conn,
$table_meta);
// 配置SQL语句,准备执行
if (!
$stid_table_meta) {
$e = oci_error(
$conn);
print htmlentities(
$e[‘message‘
]);
exit;
}
$r_table_meta = oci_execute(
$stid_table_meta, OCI_DEFAULT);
// 执行SQL。OCI_DEFAULT表示不要自动commit
if(!
$r_table_meta) {
$e = oci_error(
$stid_table_meta);
echo htmlentities(
$e[‘message‘
]);
exit;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 打印数据表结构表格
print ‘<table border="1">‘
;
print ‘<tr bgcolor="#6495ED" class="title"><td>字段名</td><td><p>数据类型</td><td>数据长度</td><td>是否可为空</td><td>注释</td></tr>‘
;
while(
$row_table_meta = oci_fetch_row(
$stid_table_meta)) {
//&& $row_col_comments = oci_fetch_row($stid_col_comments
print"<tr bgcolor=\"#F0FFFF\"><td>
$row_table_meta[0]</td>"
;
print"<td>
$row_table_meta[1]</td>"
;
print"<td>
$row_table_meta[2]</td>"
;
print"<td>
$row_table_meta[3]</td>"
;
////
$col_comments=‘select b.comments as 注释 from USER_COL_COMMENTS b where b.column_name=upper(\‘‘.
$row_table_meta[0].‘\‘) and b.table_name=upper(\‘‘.
$table_name.‘\‘)‘
;
$stid_col_comments = oci_parse(
$conn,
$col_comments);
// 配置SQL语句,准备执行
if (!
$col_comments) {
$e = oci_error(
$conn);
print htmlentities(
$e[‘message‘
]);
exit;
}
$r_col_comments = oci_execute(
$stid_col_comments, OCI_DEFAULT);
// 执行SQL。OCI_DEFAULT表示不要自动commit
if(!
$r_col_comments) {
$e = oci_error(
$stid_col_comments);
echo htmlentities(
$e[‘message‘
]);
exit;
}
while(
$row_col_comments = oci_fetch_row(
$stid_col_comments)) {
//print"<td>$row_col_comments[0]</td>";
print"<td>
$row_col_comments[0]</td>"
;
}
////
//print"<td> </td>";
print"</tr>"
;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
print"</table></br>"
;
}
// 关闭连接
oci_close(
$conn);
?>
</body>
读取Oracle表结构数据
标签: