首页学院源码字体下载软件电脑书| 素材图片模版壁纸酷站图标笔刷纹理|小游戏博客QQ表情投票计数器JoyRssMail
动态网站制作指南
首页|网络编程|站长之家|网页制作|图形图象|操作系统|冲浪宝典|软件教学|网络办公|手机学院|邮件系统|网络安全|认证考试
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与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之常用FAQ V1.0
·Oracle与FoxPro两数据库的数据转换
·Oracle9i的物理内存管理
·跟踪Oracle 9i的CPU和I/O使用代价
·关于ORACLE性能优化的好例子
·ORACLE 面试问题-技术篇(2)
·用Oracle解析函数快速检查序列间隙
·oracle中实现自动增长列
·解决ora-01861文字与格式字符串不匹配
·Oracle中的外连接简单介绍

浏览全部Oracle教程的内容 PS笔刷下载 39种不同语言在线翻译
文章搜索服务





邮件订阅服务
输入你的邮件地址,你将不会错过任何关于<Oracle教程>的内容
Powered by JoyRssMail

数据教程文章分类

本月文章推荐
. 如何实现数据库完整备份.
. 在ORACLE中移动数据库文件.
. 如何使用分析函数进行行列转换.
. Oracle Database 10 g : 为 DBA 提.
. 关于数据库OS审计.
. Oracle9iAS Containers for J2EE独.
. ArcSDE Oracle的存储配置实战演练.
. 数据库手册:Oracle维护常用SQL语句.
. ORACLE性能诊断―学习statspack笔记.
. Oracle常见等待事件说明.
. Oracle数据库数据对象分析(上).
. SQLPlus命令使用指南(二).
. 用Oracle 10g新的行时间戳捕捉变化.
. Oracle初学者入门指南-索引是干什么.
. 如何获得某个用户对某个对象的访问.
. JDBC存取Oralce数据库的注意几点事.
. 利用Java存储过程简化数据库操作.
. Oracle 10G 新特性简介.
. 从EPROM引导Linux.
. Oracle Spatial时态空间数据库设计.
. ORACLE9i新特性 索引跳跃式扫描的实.
. 利用您的Oracle9i技能来学习DB2二(.
. linux下的应用开发起步--简化蚂蚁制.
. 获取本机上配置好的Oracle服务名.
. oracle大表分区的一点点心得.
. UNIX和WINDOWS2000上的ORACLE的差异.
. 讲解Oracle创建表时Storage参数具体.
. Oracle数据库操作常见错误及解决方.
. ActualTest Oracle 1Z0-501 v11.22.
. oracle双机群集系统.
  最新网站源码 最新软件下载
2009-7-4 84网址站 v4.10
2009-7-4 仿webmasterhome 网站收录查询 v
2009-7-4 NOCC v1.8
2009-7-4 易和阳光购物商城 v1.4 Access F
2009-7-4 OK伯乐招聘求职系统
2009-7-3 MyBB v1.4.8
2009-7-3 miniBB v2.3
2009-7-3 Modoer多功能点评系统 v1.1.0 Bu
2009-7-3 Modoer多功能点评系统 v1.1.0 Bu
2009-4-4 SharePoint Designer 2007
2009-3-20 Internet Explorer 8 简体中文正
2009-3-20 Internet Explorer 8 简体中文正
2009-3-20 Internet Explorer 8 简体中文正
2009-3-20 Internet Explorer 8 简体中文正
2009-3-20 Internet Explorer 8 简体中文正
2009-3-20 Internet Explorer 8 简体中文正
2009-3-20 Internet Explorer 8 简体中文正
2009-3-20 Internet Explorer 8 简体中文正
  发表评论
姓 名: 验证码: [ 查看评论 ]
内 容:
 
站长工具:Google PR查询|网站速度测试|CSS在线编辑器|OPEN参数生成器|弹出式窗口代码产生器|密码登录生成器|在线按钮生成器|Meta标签生成器|邮箱图标在线生成|多色彩特效字代码生成器|网页代码调试器|在线FTP登陆|Flash取色器|配色代码对照表|配色辞典|CSS生成器|CSS在线压缩|广告代码|框架网页代码生成器|js/vbs加密|md5加密|进制转换|UTF-8 转换工具|在线调色板|Html转换js|Html转换asp|Html转换php|Html转换perl
实用工具:汉字翻译拼音|拼音字典|在线翻译|天气预报|火星文|在线网速测试|符号对照表|个税计算|公积金贷款计算|购房银行按揭利率计算|实时汇率查询换算|经典小工具|汉字简繁转换|普通单位换算|公制单位换算|生辰老黄历|国内电话区号|国家代码与域名缩写|文字加密解密|元素周期表|健康查询|世界时间|全国各地车牌查询|全国车辆交通违章查询|万年历|二十四节气|汉字横竖排版|手机号码查询|计算器|ip搜索
广告刊登 | 版权声明 | 联系我们 | 加入收藏 | RSS订阅
Copyright © 2000-2009 www.knowsky.com All rights reserved | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 コーチ ホームページ作成
過払い請求 現金化 債務整理 現金化