首页 养生问答 疾病百科 养生资讯 女性养生 男性养生

如何用SQL语句获取Oracle表结构

发布网友

我来回答

2个回答

懂视网

-weight:bold; } td { width:120px; padding-left:10px; } table { border: 0.5px solid #7789; 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="#95ED" 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表结构数据

标签:

热心网友

  利用sql语句查询某个表的结构的方法:

  通过Oracle中的user_tab_cols, user_col_comments, user_constraints, user_cons_columns表联合查询。
  1、user_tab_cols用来获取对应用户表的列信息;
  2、user_col_comments用来获取对应用户表列的注释信息;
  3、user_constraints用来获取用户表的约束条件;
  4、user_cons_columns约束中用户可访问列。

示例代码:
select t.table_name,
t.column_name,
t.data_type,
t.data_length,
t.nullable,
t.column_id,
c.comments,
(SELECT CASE
WHEN t.column_name = m.column_name THEN
1
ELSE
0
END
FROM DUAL) iskey
FROM user_tab_cols t,
user_col_comments c,
(select m.column_name
from user_constraints s, user_cons_columns m
where lower(m.table_name) = 'qh_outstoresabinfo'
and m.table_name = s.table_name
and m.constraint_name = s.constraint_name
and s.constraint_type = 'P') m
WHERE lower(t.table_name) = 'qh_outstoresabinfo'
and c.table_name = t.table_name
and c.column_name = t.column_name
and t.hidden_column = 'NO'
order by t.column_id

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com