如何使用 oracle forms 6i 导出模式及其数据

How to export schema and its data with oracle forms 6i

我正在处理 oracle 表单以创建与我连接的用户的备份。 我有一个文本项 :filepath

和一个可以打开文件对话框的按钮 :getfile,效果很好。

declare
v_file_name varchar2(2000);
begin
:filepath := get_file_name(:filepath);
go_item('savefile');
end;

最后一个按钮将进行备份 :savefile

HOST('exp userid=user/pass@orcl file=:filepath log=:filepath||.log grants=Y full=Y buffer=1024000');

当我按下按钮时,cmd 屏幕卡住并等待确认

EXP-00023: must be a DBA to do Full Database or Tablespace export
(2)U(sers), or (3)T(ables): (2)U >

我不想让用户确认任何事情。如何解决?

只需删除 grants=Y

    HOST('exp userid=user/pass@orcl file=:filepath log=:filepath||.log);

或者您可以创建专业代码并动态添加用户名、密码和 connect_string...

DECLARE
   cmd    VARCHAR2 (255);
   un     VARCHAR2 (255) := GET_APPLICATION_PROPERTY (username);
   pass   VARCHAR2 (255) := GET_APPLICATION_PROPERTY (PASSWORD);
   conn   VARCHAR2 (255) := GET_APPLICATION_PROPERTY (connect_string);
BEGIN
   cmd :='exp '|| un|| '/'|| pass|| '@'|| conn|| ' file='|| :filepath|| un|| '_'|| TO_CHAR (SYSDATE, 'DDMMYYYY')|| '.dmp'|| ' log='|| :filepath|| un|| '_'|| TO_CHAR (SYSDATE, 'DDMMYYYY')|| '.log';
   MESSAGE ('Exporting...', no_acknowledge);
   SYNCHRONIZE;
   HOST (cmd, screen);
   MESSAGE ('done');
   MESSAGE (' ');
EXCEPTION
   WHEN OTHERS
   THEN
      MESSAGE (SQLERRM);
END;

编辑

注: 那不是备份,那是导出,不是备份数据库的真正方法

希望您不要将其用于任何重要的数据。

如果你真的想备份使用RMAN。这是你可以统计的... Getting Started with RMAN