ThinkPHP 实现 Oracle 数据字典

来源:互联网 发布:音频剪辑软件for mac 编辑:程序博客网 时间:2024/05/18 17:57

视图层: index.html 模板

<div class='dict'><div id='top'></div><volist name='data' id='v1'><a href='#{$v1.tb}'>{$v1.tb}</a>  </volist><volist name='data' id='v1'><table id='{$v1.tb}'>    <caption>{$v1.tb}   <a href='#top' style='font-size:12px;font-weight:normal'>回到顶部</a></caption>    <tr>        <th width=210>字段</th>        <th width=150>类型</th>        <th>注释</th>    </tr>    <volist name="v1['fd']" id='v2'>    <tr>        <td>{$v2.column_name}</td>        <td>{$v2.data_type}({$v2.data_length})</td>        <td>{$v2.comments}</td>    </tr>    </volist></table><br /></volist></div>

控制器层: index() 方法

public function index() {$user = C ( 'DB_USER' );$sql1 = "            SELECT A.*,B.comments             FROM all_tab_columns A,DBA_COL_COMMENTS B             WHERE A.owner=B.owner             AND A.table_name=B.table_name             AND A.COLUMN_NAME=B.COLUMN_NAME             AND A.owner='{$user}'";$rs1 = M ()->query ( $sql1 );$tbs = array ();foreach ( $rs1 as $k => $v ) {if (! in_array ( $v ['table_name'], $tbs )) {$tbs [] = $v ['table_name'];}}// dump($tbs);sort ( &$tbs );for($i = 0; $i < count ( $tbs ); $i ++) {$rs2 [$i] ['tb'] = strtolower ( $tbs [$i] );$sql2 = "                select col.COLUMN_NAME, com.Comments, col.DATA_TYPE, col.DATA_LENGTH                from sys.all_tab_columns col,                     sys.all_col_comments com                where col.owner = '{$user}'                and col.table_name = '{$tbs[$i]}'                and com.Owner (+) = '{$user}'                and com.Table_Name (+) = '{$tbs[$i]}'                and com.Column_Name (+) = col.Column_Name                order by col.column_id";$rs2 [$i] ['fd'] = M ()->query ( $sql2 );foreach ( $rs2 [$i] ['fd'] as $k => $v ) {$rs2 [$i] ['fd'] [$k] ['column_name'] = strtolower ( $v ['column_name'] );$rs2 [$i] ['fd'] [$k] ['data_type'] = strtolower ( $v ['data_type'] );$rs2 [$i] ['fd'] [$k] ['data_length'] = $v ['data_length'] / 2;}}// print_r($rs2);$this->assign ( 'data', $rs2 );$this->display ();}

配置文件: config.php

    'DB_TYPE'   =>'oracle',    'DB_HOST'   =>'192.168.9.19',    'DB_NAME'   =>'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.9.19)(PORT=1521)))(CONNECT_DATA=(SID=orcl)))',    'DB_USER'   =>'JINXIAOCUN',    'DB_PWD'    =>'jxc',    'DB_PORT'   =>'1521',    'DB_PREFIX' =>'',


原创粉丝点击