我自己经常用的一段代码: DECLARE V_BUT INT; V_TABLE VARCHAR(30); CURSOR C_TABLE IS SELECT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME = UPPER(V_TABLE); BEGIN
V_TABLE := NAME_IN('BB.TABLE_NAME'); IF V_TABLE IS NOT NULL THEN OPEN C_TABLE; FETCH C_TABLE INTO V_TABLE; IF C_TABLE%NOTFOUND THEN MESSAGE('This table is not exist!'); RAISE FORM_TRIGGER_FAILURE; END IF; CLOSE C_TABLE; END IF; IF NAME_IN('BB.TABLE_NAME') IS NULL THEN SET_ALERT_PROPERTY('ALERT1', ALERT_MESSAGE_TEXT,'You want get all table structure,'|| 'Are you sure ?'); V_BUT := SHOW_ALERT('ALERT1'); IF V_BUT = ALERT_BUTTON1 THEN TABLE_STRUCTURE(NULL,NAME_IN('BB.FILE_PATH'),NVL(NAME_IN('BB.FILE_NAME'),'N')); END IF; ELSE TABLE_STRUCTURE(NAME_IN('BB.TABLE_NAME'), NAME_IN('BB.FILE_PATH'), NVL(NAME_IN('BB.FILE_NAME'),'N')); END IF;
pl/sql develope
pl/sql developer
DECLARE
V_BUT INT;
V_TABLE VARCHAR(30);
CURSOR C_TABLE IS
SELECT TABLE_NAME
FROM USER_TABLES
WHERE TABLE_NAME = UPPER(V_TABLE);
BEGIN
V_TABLE := NAME_IN('BB.TABLE_NAME');
IF V_TABLE IS NOT NULL THEN
OPEN C_TABLE;
FETCH C_TABLE INTO V_TABLE;
IF C_TABLE%NOTFOUND THEN
MESSAGE('This table is not exist!');
RAISE FORM_TRIGGER_FAILURE;
END IF;
CLOSE C_TABLE;
END IF;
IF NAME_IN('BB.TABLE_NAME') IS NULL THEN
SET_ALERT_PROPERTY('ALERT1', ALERT_MESSAGE_TEXT,'You want get all table structure,'||
'Are you sure ?');
V_BUT := SHOW_ALERT('ALERT1');
IF V_BUT = ALERT_BUTTON1 THEN
TABLE_STRUCTURE(NULL,NAME_IN('BB.FILE_PATH'),NVL(NAME_IN('BB.FILE_NAME'),'N'));
END IF;
ELSE
TABLE_STRUCTURE(NAME_IN('BB.TABLE_NAME'),
NAME_IN('BB.FILE_PATH'),
NVL(NAME_IN('BB.FILE_NAME'),'N'));
END IF;
END;
1、exp USER/pswd file=a.dmp log=loga.txt
2、imp USER/pswd file=a.dmp show=y log=logb.txt打开logb.txt,里面可以看到DDL语句
或用sql plus 的spool 就是很慢,呵呵
imp userid = user/password full = y indexfile = t.sql 看t.sql