动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息



本月文章推荐
.生僻的SQLPLUS命令.
.如何使非root用户都不能远程登录.
.Brian Peasland:充分认识和利用O.
.Oracle8的不安全因素及几点说明.
.sqlplus 技巧 spool 指定格式的文.
.教你快速掌握解决RMAN-06026错误.
.Oracle开发人员的 JDOM 和 XML 分.
.数据表历史数据的显示.
.imp buffer=? & array insert.
.一句T-SQL语句引发的思考 转帖.
.关于竖表转横表的问题.
.如何消除Oracle数据库的安全隐患.
.新型数据库体系结构-DAN.
.为什么Postfix提示“biff_notify.
.支持Web的OLAP.
.Oracle数据库的系统性能优化策略.
.Decode 函数的用法.
.standby利用并行恢复提高归档恢复.
.一个JAVA连接ORACLE的例子.
.详细讲解获得当前"SCN"的几种有效.

Oracle与Access表之间的导入和导出

发表日期:2008-2-9 |


本文主要回答了如何在FORM的程序中实现Oracle与Access表之间的导入和导出这个问题。 问题的解答: 预备工作: 1.安装OCA。运行Developer的安装盘,选择自定义安装,选择Oracle Open Client Adapter for ODBC安装。 2.在数据源(ODBC)中添加DSN。控制面板->治理工具->数据源(ODBC),选择“用户DSN”,添加要进行操作的Access的文件。在“高级”选项里,填上“登录名称”和“密码”(很重要,在程序中会用到)。 下面以实际例子来说明: 假设在Oracle中和Access中都有一个student表,表中字段相同(name char(10) ,age number(2)),在预备工作第2步中的“数据源名”为test,“登录名称”和“密码”都为user。 下面为从Oracle导出到Access的PROCEDURE:
PROCEDUREoracle_to_accessIS connection_idEXEC_SQL.ConnType; action_cursorEXEC_SQL.CursType; ignorePLS_INTEGER; t_namestudent.name%type; t_agestudent.age%type; cursortemp_cursorisselect*fromstudent; 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*fromstudent'); ignore:=EXEC_SQL.EXECUTE(connection_id,action_cursor); EXEC_SQL.CLOSE_CURSOR(connection_id,action_cursor); opentemp_cursor; eXPort_count:=0; action_cursor:=EXEC_SQL.OPEN_CURSOR(connection_id); EXEC_SQL.PARSE(connection_id,action_cursor,' INSERTINTOstudent(name,age)values(:1,:2)'); loop fetchtemp_cursorintot_name,t_age; exitwhentemp_cursor%notfound; EXEC_SQL.BIND_VARIABLE(connection_id,action_cursor,':1',t_name); EXEC_SQL.BIND_VARIABLE(connection_id,action_cursor,':2',t_age); ignore:=EXEC_SQL.EXECUTE(connection_id,action_cursor); endloop; closetemp_cursor; EXEC_SQL.PARSE(connection_id,action_cursor,'commit'); ignore:=EXEC_SQL.EXECUTE(connection_id,action_cursor); EXEC_SQL.CLOSE_CURSOR(connection_id,action_cursor); EXEC_SQL.CLOSE_CONNECTION(connection_id); EXCEPTION WHENEXEC_SQL.PACKAGE_ERRORTHEN IFEXEC_SQL.LAST_ERROR_CODE(connection_id)!=0THEN message('数据导出至ACCESS失败:' TO_CHAR(EXEC_SQL.LAST_ERROR_CODE(connection_id))' :'EXEC_SQL.LAST_ERROR_MESG(connection_id)); ENDIF; IFEXEC_SQL.IS_CONNECTED(connection_id)THEN IFEXEC_SQL.IS_OPEN(connection_id,action_cursor)THEN EXEC_SQL.CLOSE_CURSOR(connection_id,action_cursor); ENDIF; EXEC_SQL.CLOSE_CONNECTION(connection_id); ENDIF; END; 下面为从Access导出到Oracles的procedure: PROCEDUREAccess_to_oracleIS connection_idEXEC_SQL.ConnType; action_cursorEXEC_SQL.CursType; ignorePLS_INTEGER; t_namestudent.name%type; t_agestudent.age%type; BEGIN connection_id:=EXEC_SQL.OPEN_CONNECTION('user/user@odbc:test'); action_cursor:=EXEC_SQL.OPEN_CURSOR(connection_id); deletefromstudent; EXEC_SQL.PARSE(connection_id,action_cursor,'selectname,agefromstudent'); ignore:=EXEC_SQL.EXECUTE(connection_id,action_cursor); exec_sql.define_column(connection_id,action_cursor,1,t_name,10); exec_sql.define_column(connection_id,action_cursor,2,t_age); ignore:=EXEC_SQL.EXECUTE(connection_id,action_cursor); while(exec_sql.fetch_rows(connection_id,action_cursor)>0) loop exec_sql.column_value(connection_id,action_cursor,1,t_name); exec_sql.column_value(connection_id,action_cursor,2,t_age); insertintotest(name,age)values(t_name,t_age); endloop; commit; EXEC_SQL.CLOSE_CURSOR(connection_id,action_cursor); EXEC_SQL.CLOSE_CONNECTION(connection_id); EXCEPTION WHENEXEC_SQL.PACKAGE_ERRORTHEN IFEXEC_SQL.LAST_ERROR_CODE(connection_id)!=0THEN message('数据导入至ORACLE失败:' TO_CHAR(EXEC_SQL.LAST_ERROR_CODE(connection_id))' :'EXEC_SQL.LAST_ERROR_MESG(connection_id)); ENDIF; IFEXEC_SQL.IS_CONNECTED(connection_id)THEN IFEXEC_SQL.IS_OPEN(connection_id,action_cursor)THEN EXEC_SQL.CLOSE_CURSOR(connection_id,action_cursor); ENDIF; EXEC_SQL.CLOSE_CONNECTION(connection_id); ENDIF; END;
注重:EXEC_SQL.BIND_VARIABLE中绑定的变量只能是以下三种类型:NUMBER,DATE,VARCHAR2。对于Access中的“是/否”的布尔型变量,可以用NUMBER类型的1和0来表示。假如Access中的表名或者字段名中有空格,在写SQL语句的时候可以用双引号把表名或者字段名包括起来,如:本例中假如Access中表名为student detail,字段名分别为student name和student age,那插入数据的SQL语句为:
insert into “student detail”(“student name”,”student age”) values(:1,:2)。

上一篇:Oracle数据库较好的十种重新启动步骤 人气:362
下一篇:Oracle案例详细分析:Job任务停止执行 人气:538
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号