【发布时间】:2015-01-28 04:51:50
【问题描述】:
我正在尝试在 Oracle 中创建一个简单的游标,它将遍历表的列并存储列名和数据类型。我希望表名使用输入是动态的。我在尝试编译过程时收到一大堆不同的错误消息(未声明的变量等)。我的基本结构一定是错误的。这是我目前所拥有的:
CREATE OR REPLACE PROCEDURE DV
(
TABLENAME IN VARCHAR2
)
authid current_user
AS
sql_qx varchar2(5000);
curTab varchar2(5000);
curCol varchar2(5000);
curTyp varchar2(5000);
BEGIN
sql_qx := 'DECLARE CURSOR tblCur IS
SELECT table_name,
column_name,
data_type
FROM user_tab_columns
WHERE table_name = ''' || TABLENAME || '''';
execute immediate sql_qx;
IF NOT tblCur%ISOPEN THEN
OPEN tblCur;
END IF;
FETCH tblCur INTO curTab, curCol, curTyp;
WHILE tblCur%FOUND THEN
LOOP
dbms_output.put_line(tblCur.curTab || ' ' ||tblCur.curCol || ' ' ||tblCur.curTyp);
FETCH tblCur INTO curTab, curCol, curTyp;
END LOOP;
END DV;
【问题讨论】:
标签: sql oracle dynamic input cursor