读取Oracle表结构数据
<html lang="zh-cn">
<head>
<meta name="generator"
content="Oracle Test" />
<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;
}
.db_info {
color:Navy;
background-color: Lavender;
width:660px;
font-weight:bold;
padding:10px 10px 10px 20px;
line-height:25px;
text-align:left;
border-radius:15px;
-moz-border-radius:15px; /* Old Firefox */
}
</style>
<title>Oracle数据库表结构</title>
</head>
<body>
<center>
<?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) {
echo "连接Oracle失败!<br/>";
$e = oci_error();
print htmlentities($e['message']);
exit;
}else{
echo "连接Oracle成功!<br/>";
}
echo "用户:".$ora_username." 服务器:".$ora_host." SID:".$ora_sid."<br/><br/>"; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 查询数据库版本
$sql_version='select banner from sys.v_$version';
$stid_sql_version = oci_parse($conn, $sql_version); // 配置 Oracle 语句预备执行
if (!$stid_sql_version) {
$e = oci_error($conn);
print htmlentities($e['message']);
exit;
}
$r_sql_version = oci_execute($stid_sql_version, OCI_DEFAULT); // 执行SQL。OCI_DEFAULT表示不要自动commit
if(!$r_sql_version) {
$e = oci_error($stid_sql_version);
echo htmlentities($e['message']);
exit;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 打印执行结果
print "<div class=\"db_info\">";
while($row = oci_fetch_row($stid_sql_version)) {
$ver_info=$row[0];
echo "<cite>".$ver_info."</cite><br/>";
}
print "</div><br/>";
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 查询用户下的表数量
$sql_showtables='select table_name from user_tables';
$stid = oci_parse($conn, $sql_showtables); // 配置 Oracle 语句预备执行
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>";
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 查询表名注释
$tab_comments='select b.comments as 注释 from USER_TAB_COMMENTS b where b.TABLE_NAME=upper(\''.$table_name.'\')';
$stid_tab_comments = oci_parse($conn, $tab_comments); // 配置SQL语句,准备执行
if (!$tab_comments) {
$e = oci_error($conn);
print htmlentities($e['message']);
exit;
}
$r_tab_comments = oci_execute($stid_tab_comments, OCI_DEFAULT); // 执行SQL。OCI_DEFAULT表示不要自动commit
if(!$r_tab_comments) {
$e = oci_error($stid_tab_comments);
echo htmlentities($e['message']);
exit;
}
while($row_tab_comments = oci_fetch_row($stid_tab_comments)) {
print" <strong>备注:$row_tab_comments[0]</strong>";
print"<br/>";
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 查询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);
?>
</center>
</body>
</html>
读取Oracle表结构数据的更多相关文章
- 用plsql 导入导出oracle表结构数据
一.导出 (1)导出数据 进入pl/sql,"工具"---->"Export Tables...",然后在弹出的对话框中选择要导出的表,最后点击" ...
- python用jdbc读取oracle表和列的信息,生成java代码
这个项目的地址 传送门 第一个python3项目,对python 还是学习中,请大佬轻喷,欢迎指点 import jaydebeapi from .database import Database d ...
- 利用ADO让普通人用excel读取oracle数据库表的通用办法
Ref:http://blog.csdn.net/iamlaosong/article/details/8465177 Excel通过ADO方式连接到Oracle并操作Oracle给那些编程能力不强的 ...
- Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据
Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据 PRM 全称为ParnassusData Recovery Manager ,由 诗檀软 ...
- Oracle 表连接方式分析 .
一 引言 数据仓库技术是目前已知的比较成熟和被广泛采用的解决方案,用于整和电信运营企业内部所有分散的原始业务数据,并通过便捷有效的数据访问手段,可以支持企业内部不同部门,不同需求,不同层次的用户随时获 ...
- 读取数据表中第m条到第n条的数据,SQL语句怎么写?
原文:读取数据表中第m条到第n条的数据,SQL语句怎么写? 对于MySQL或者Oracle来说,如果实现从Table 表中取出第 m 条到第 n 条的记录操作,我们需要TOP函数(不是所有的数据库都支 ...
- Oracle表空间详解
Oracle表空间详解 1.表空间的分类 Oracle数据库把表空间分为两类:系统表空间和非系统表空间. 1.1系统表空间指的是数据库系统创建时需要的表空间,这些表空间在数据库创建时自动创建,是每个数 ...
- Python+Pandas 读取Oracle数据库
Python+Pandas 读取Oracle数据库 import pandas as pd from sqlalchemy import create_engine import cx_Oracle ...
- Oracle树形结构数据-相关知识总结
Oracle树形结构数据--基本知识 1.数据组成 2.基本查询 2.1.查询某节点及该节点下的所有子孙节点 SELECT * FROM QIANCODE.TREE_TABLE_BASI ...
随机推荐
- 在线试听功能(前端直接略过吧,适合javaEE后台开发的)
应用场景:录音试听,MP3试听... 比如为客户提供录音功能时.客户希望录音完成试听录音,然后下载等功能.直接上代码:关键是取得录音的在服务器的地址,如:url='http://localhost:8 ...
- MVC 5 - 查询Details和Delete方法
MVC 5 - 查询Details和Delete方法 在这部分教程中,接下来我们将讨论自动生成的Details和Delete方法. 查询Details和Delete方法 打开Movie控制器并查看De ...
- Smith Numbers - PC110706
欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/uva10042.html 原创:Smit ...
- JavaScript里的依赖注入
JavaScript里的依赖注入 我喜欢引用这句话,“程序是对复杂性的管理”.计算机世界是一个巨大的抽象建筑群.我们简单的包装一些东西然后发布新工具,周而复始.现在思考下,你所使用的语言包括的一些内建 ...
- 由link()和symlink()谈到软链接与硬链接
任何一个文件可以有多个目录项指向其i节点.创建一个向现存文件连接的方法是使用l i n k函数. #include <unistd.h> int link(const char * e x ...
- c#二进制、十进制、16进制之间的转换
//十进制转二进制 Console.WriteLine(Convert.ToString(69, 2)); //十进制转八进制 Console.WriteLine(Convert.ToString(6 ...
- Day1:T1 模拟 T2 拓扑排序
T1:模拟 自己第一天的简直跟白痴一样啊...模拟都会打错.. 当时貌似在更新最大值的时候打逗比了... if((sum[x]==max && x<maxh) || sum[x] ...
- 模块化开发AraeRegistration
.NET/ASP.NET MVC(模块化开发AraeRegistration) 阅读目录: 1.开篇介绍 2.AreaRegistration注册路由(传递路由上下文进行模块化注册) 1]开篇介绍 A ...
- ASP.NET Web API 基础篇1
ASP.NET Web API 直到我膝盖中了一箭[1]基础篇 无题 蓦然回首,那些年,我竟然一直很二. 小时候,读武侠小说的时候,看到那些猪脚,常常会产生一种代入感,幻想自己也会遭遇某种奇遇,遇到悬 ...
- WPF之TreeList的实现方法1
WPF之TreeList的实现方法(一) 做项目的时候根据需求,WPF现有的控件不能完全满足我们的需求, 很多时候我们需要对现有的控件做一下加工. 最简单的我们可能会把Tree转换成List形式有的叫 ...