没有合适的资源?快使用搜索试试~ 我知道了~
PL/SQL实现获得所有表名及列名到表
需积分: 50 24 下载量 127 浏览量
2013-09-28
18:31:50
上传
评论 1
收藏 1KB TXT 举报
温馨提示
试读
2页
PL/SQL实现获得所有表名及列名到表.
资源推荐
资源详情
资源评论
PL/SQL实现获得所有表名及列名到表
首先创建保存表
CREATE TABLE table_tmp(user_name varchar2(20),table_name VARCHAR2(100),col_name VARCHAR2(200));
然后执行匿名块如下:
DECLARE
CURSOR CUR_TABLE IS --定义游标取出表名和列名
SELECT TABLE_NAME, COLUMN_NAME FROM USER_TAB_COLUMNS;
CUR01 CUR_TABLE%ROWTYPE;
U_NAME VARCHAR2(100) := '&a';--自定义输入用户名
U_COUNT INTEGER; --存储行数用
T_NAME USER_TAB_COLUMNS.TABLE_NAME%TYPE; --存储表名
C_NAME USER_TAB_COLUMNS.COLUMN_NAME%TYPE;--存储列名
BEGIN
OPEN CUR_TABLE; --打开游标
LOOP
FETCH CUR_TABLE
INTO CUR01;
EXIT WHEN CUR_TABLE%NOTFOUND; --没有数据就退出
T_NAME := CUR01.TABLE_NAME; --取出游标的值赋给变量
C_NAME := CUR01.COLUMN_NAME;
INSERT INTO TABLE_TMP VALUES (U_NAME, T_NAME, C_NAME); --插入到table_tmp表
END LOOP;
U_COUNT := CUR_TABLE%ROWCOUNT; --获得行数
CLOSE CUR_TABLE;
DBMS_OUTPUT.PUT_LINE('Success,effect lines:'||U_COUNT); --成功输出影响行数
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('no_data_found');
首先创建保存表
CREATE TABLE table_tmp(user_name varchar2(20),table_name VARCHAR2(100),col_name VARCHAR2(200));
然后执行匿名块如下:
DECLARE
CURSOR CUR_TABLE IS --定义游标取出表名和列名
SELECT TABLE_NAME, COLUMN_NAME FROM USER_TAB_COLUMNS;
CUR01 CUR_TABLE%ROWTYPE;
U_NAME VARCHAR2(100) := '&a';--自定义输入用户名
U_COUNT INTEGER; --存储行数用
T_NAME USER_TAB_COLUMNS.TABLE_NAME%TYPE; --存储表名
C_NAME USER_TAB_COLUMNS.COLUMN_NAME%TYPE;--存储列名
BEGIN
OPEN CUR_TABLE; --打开游标
LOOP
FETCH CUR_TABLE
INTO CUR01;
EXIT WHEN CUR_TABLE%NOTFOUND; --没有数据就退出
T_NAME := CUR01.TABLE_NAME; --取出游标的值赋给变量
C_NAME := CUR01.COLUMN_NAME;
INSERT INTO TABLE_TMP VALUES (U_NAME, T_NAME, C_NAME); --插入到table_tmp表
END LOOP;
U_COUNT := CUR_TABLE%ROWCOUNT; --获得行数
CLOSE CUR_TABLE;
DBMS_OUTPUT.PUT_LINE('Success,effect lines:'||U_COUNT); --成功输出影响行数
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('no_data_found');
资源评论
yzhg2012
- 粉丝: 14
- 资源: 46
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功