知识大全 Oracle与Access表之间的导入和导出实现

Posted

篇首语:韬略终须建新国,奋发还得读良书。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle与Access表之间的导入和导出实现相关的知识,希望对你有一定的参考价值。

Oracle与Access表之间的导入和导出实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  问题的提出 如何在FORM的程序中实现Oracle与Access表之间的导入和导出

  问题的解答

  准备工作

   安装OCA 运行Developer的安装盘 选择自定义安装 选择Oracle Open Client Adapter for ODBC安装

   在数据源(ODBC)中添加DSN 控制面板 >管理工具 >数据源(ODBC) 选择 用户DSN 添加要进行操作的Access的文件 在 高级 选项里 填上 登录名称 和 密码 (很重要 在程序中会用到)

  下面以实际例子来说明

  假设在Oracle中和Access中都有一个student表 表中字段相同(name char( ) age number( )) 在准备工作 中的 数据源名 为test 登录名称 和 密码 都为user

  下面为从Oracle导出到Access的procedure

   以下是引用片段   PROCEDURE oracle_to_access IS   connection_id EXEC_SQL ConnType;   action_cursor EXEC_SQL CursType;   ignore PLS_INTEGER;   t_name student name%type;   t_age student age%type;   cursor temp_cursor is select * from student;   BEGIN   connection_id:= EXEC_SQL OPEN_CONNECTION( user/user@odbc:test );   action_cursor := EXEC_SQL OPEN_CURSOR(connection_id);   EXEC_SQL PARSE(connection_id  action_cursor delete * from student );   ignore := EXEC_SQL EXECUTE(connection_id  action_cursor);   EXEC_SQL CLOSE_CURSOR(connection_id action_cursor);   open temp_cursor;   export_count :=  ;   action_cursor := EXEC_SQL OPEN_CURSOR(connection_id);   EXEC_SQL PARSE(connection_id  action_cursor INSERT INTO student(name age) values(: : ) );   loop   fetch temp_cursor into t_name t_age;   exit when temp_cursor%notfound;   EXEC_SQL BIND_VARIABLE(connection_id action_cursor   :  t_name);   EXEC_SQL BIND_VARIABLE(connection_id action_cursor   :  t_age);   ignore := EXEC_SQL EXECUTE(connection_id  action_cursor);   end loop;   close temp_cursor;   EXEC_SQL PARSE(connection_id  action_cursor mit );   ignore := EXEC_SQL EXECUTE(connection_id action_cursor);   EXEC_SQL CLOSE_CURSOR(connection_id action_cursor);   EXEC_SQL CLOSE_CONNECTION(connection_id);   EXCEPTION   WHEN EXEC_SQL PACKAGE_ERROR THEN   IF EXEC_SQL LAST_ERROR_CODE(connection_id) !=   THEN   message( 数据导出至ACCESS失败:   || TO_CHAR(EXEC_SQL LAST_ERROR_CODE(connection_id)) ||  :   || EXEC_SQL LAST_ERROR_MESG(connection_id));   END IF;   IF EXEC_SQL IS_CONNECTED(connection_id) THEN   IF EXEC_SQL IS_OPEN(connection_id action_cursor) THEN   EXEC_SQL CLOSE_CURSOR(connection_id action_cursor);   END IF;   EXEC_SQL CLOSE_CONNECTION(connection_id);   END IF;   END;   下面为从Access导出到Oracles的procedure   PROCEDURE Access_to_oracle IS   connection_id EXEC_SQL ConnType;   action_cursor EXEC_SQL CursType;   ignore PLS_INTEGER;   t_name student name%type;   t_age student age%type;   BEGIN   connection_id := EXEC_SQL OPEN_CONNECTION( user/user@odbc:test );   action_cursor := EXEC_SQL OPEN_CURSOR(connection_id);   delete from student;   EXEC_SQL PARSE(connection_id  action_cursor select name age from student );   ignore := EXEC_SQL EXECUTE(connection_id  action_cursor);   exec_sql define_column(connection_id action_cursor t_name );   exec_sql define_column(connection_id action_cursor t_age);   ignore := EXEC_SQL EXECUTE(connection_id  action_cursor);   while(exec_sql fetch_rows(connection_id action_cursor)> )   loop   lumn_value(connection_id action_cursor t_name);   lumn_value(connection_id action_cursor t_age);   insert into test(name age) values(t_name t_age);   end loop;   mit;   EXEC_SQL CLOSE_CURSOR(connection_id action_cursor);   EXEC_SQL CLOSE_CONNECTION(connection_id);   EXCEPTION   WHEN EXEC_SQL PACKAGE_ERROR THEN   IF EXEC_SQL LAST_ERROR_CODE(connection_id) !=   THEN   message( 数据导入至ORACLE失败:   || TO_CHAR(EXEC_SQL LAST_ERROR_CODE(connection_id)) ||  :   || EXEC_SQL LAST_ERROR_MESG(connection_id));   END IF;   IF EXEC_SQL IS_CONNECTED(connection_id) THEN   IF EXEC_SQL IS_OPEN(connection_id action_cursor) THEN   EXEC_SQL CLOSE_CURSOR(connection_id action_cursor);   END IF;   EXEC_SQL CLOSE_CONNECTION(connection_id);   END IF;   END;

cha138/Article/program/Oracle/201311/17037

相关参考

知识大全 oracle将数据导入指定表空间

在使用oracle的exp和imp导出导入的时候有时遇到需要导入的数据不是同一个用户的也不一定是同一个表空间例如源数据库上用户为aaa表空间aa目标数据库用户为bbb表空间bb当用imp导入以后查看发

知识大全 如何将 Access 数据导出到 Oracle 数据库中

如何将Access数据导出到Oracle数据库中?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 oracle数据库如何导出并重新导入

oracle数据库导出并重新导入 一导出数据库?将数据库TEST完全导出用户名scott密码tiger导出到D:\\testDBdmp中[plain]expscott/tiger@TESTf

知识大全 用Oracle导入导出工具实现Oracle数据库移植

用Oracle导入导出工具实现Oracle数据库移植  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Oracle数据库导入导出方法的总结

Oracle数据库导入导出方法的总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle

知识大全 Oracle数据导入导出imp/exp

Oracle数据导入导出imp/exp  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  功能Ora

知识大全 Oracle数据导入导出imp/exp命令

Oracle数据导入导出imp/exp命令  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如何在

知识大全 教你怎样在Oracle数据库中高速导出/导入

教你怎样在Oracle数据库中高速导出/导入  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  迄今

知识大全 中文表名-导入导出-字符集

  什么是OPS    OPS(OracleParallelServer)可以让位于不同系统的多个实例同时访问同一个数据库并行服务器可以有效地提高系统的可用性和对多系统的访问性能但是如果你的数据没有做

知识大全 Oracle中逻辑导出Exp/导入Imp的详细介绍以及参数介绍

Oracle中逻辑导出Exp/导入Imp的详细介绍以及参数介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来