读取Oracle表结构数据

<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<meta name="robots" content="all" />
<meta name="author" content="w3school.com.cn" />
<link rel="stylesheet" type="text/css" href="/c5.css" />
<style type="text/css">

.title {
font-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>
时间: 2024-10-03 16:39:31

读取Oracle表结构数据的相关文章

shell读取oracle表并输出为文件

export ORACLE_BASE=/opt/oracle export ORACLE_HOME=/opt/oracle/product/11gR1/db export ORACLE_SID=ORA LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib export LD_LIBRARY_PATH SHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32 e

用plsql 导入导出oracle表结构数据

一.导出 (1)导出数据 进入pl/sql,"工具"---->"Export Tables...",然后在弹出的对话框中选择要导出的表,最后点击"export" (2)导出表结构 进入pl/sql,"工具"---->"Export User Objects...",然后在弹出的对话框中选择要导出的表,最后点击"export" 二. (1).创建名字空间(看我的另一篇blog)

qt读取oracle表数据

1.文件->新建项目->qt widgets application->qwidget->完成 2.在.pro文件中增加 QT +=sql 3.代码 #include "widget.h" #include <QApplication> #include <QtSql/QSqlDatabase> #include <QtSql/QSqlQuery> #include <QDebug> int main(int ar

利用ADO让普通人用excel读取oracle数据库表的通用办法

Ref:http://blog.csdn.net/iamlaosong/article/details/8465177 Excel通过ADO方式连接到Oracle并操作Oracle给那些编程能力不强的人带来很大的福音,结合着Excel的数据处理与图表制作,就能很轻松地处理一些常规工作. 日常工作中需要查询各种数据,而且不断变化,处理这些数据的人不是技术人员,不会连接数据库自己查询,通过下面的办法就可以让技术人员编辑好包含查询语句的excel文件,让管理人员自己输入条件取数了. 我的方法是编辑需要

oracle表连接

oracle表连接又被问到了,感觉细节了解还是远远不够啊,从网上找资料学习之.转载的. 在查看sql执行计划时,我们会发现表的连接方式有多种,本文对表的连接方式进行介绍以便更好看懂执行计划和理解sql执行原理. 一.连接方式:         嵌套循环(Nested  Loops (NL))       (散列)哈希连接(Hash Join (HJ))     (归并)排序合并连接(Sort Merge Join (SMJ) ) 二.连接说明:     1.Oracle一次只能连接两个表.不管查

Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据

PRM 全称为ParnassusData Recovery Manager ,由 诗檀软件自主研发,拥有独立的软件著作权. PRM可以独立于Oracle软件运行,直接从Oracle数据文件中抽取表上的数据. 当以下几种场景中,都可以用上PRM: 无备份或者备份不可用情况下,数据表被意外truncate掉或者DROP掉 由于数据库损坏,导致的数据打不开 无法OPEN 数据块存在损坏,Oracle无法读取出数据 数据文件存在损坏,或者数据文件头信息不一致 等等 以上这些问题中,用户均可以考虑使用PR

(转)java读取数据库表信息,子段

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /*** * 2014-07-21日: * oracle数据

读取oracle注释

# coding=utf-8 __author__ = 'jspdba' u''' 读取oracle注释 ''' import cx_Oracle    # 导入模块 SQL=r""" select * from user_col_comments t where 1=1 and t.comments is not null and t.table_name = '@TABLE' """ words=["custom",&qu

C#读取Oracle Spatial的sdo_geometry

oracle的sdo_geometry中内置get_wkt和get_wkb两个方法. 以数据库表geoms为例,此表中有id和geometry两列 try { OracleConnection con = new OracleConnection(conStr); OracleCommand cmd = new OracleCommand(@"SELECT sdo_geometry.get_wkt(geometry) FROM geoms WHERE id= 1902 ", con);