来个例子:
CHOOSE CASE Real(sle_realText)
CASE is < 1099999
sle_messageText = "Real Case < 1099999"
CASE 1100 to 4899999
sle_messageText = "Real Case 11 to 489999
CASE is > 489999
sle_messageText = "Real Case > 489999"
CASE ELSE
sle_messageText = "Cannot evaluate!"
END CHOOSE
一.导出
1选择要导出的数据库表,右键选择“所有任务”,点击“所有任务”下的子菜单“Export
Data„”进入“DTS
Import/Export
Wizard”窗口。
2点击“下一步”,进入“Choose
a
Data
Source”。
3“Data
Source”更改为“Microsoft
OLE
DB
Provider
for
SQL
Server”;“Server”更改为“笔记本(工控机)名称\WINCC”;下一步使用WINDOWS认证“Use
Windows
Authentication”;“Database”更改为“项目运行系统下的路径(例如:CC_BGSYJ_14_02_24_11_22_22R)”。
4
点击“下一步”,进入“Choose
a
destination”。
5“Destination”更改为“Microsoft
Excel
97-2000”;“File
name”建议更改为要导出的数据库表的名字,并指定保存的路径。
6.点击“下一步”,进入“Specify
Table
Copy
Query”。
7
点击“下一步”,进入“Select
Source
Table
and
Views”。
8.选择要导出的数据库表,然后点击“下一步”,进入“Save,Schedule,and
replicate
package”。
9
点击“下一步”,“完成”,“确定”,“Done”,数据导出完成。
二.导入
1选择要导出的数据库表,右键选择“所有任务”,点击“所有任务”下的子菜单“Import
Data„”进入“DTS
Import/Export
Wizard”窗口。
2
点击“下一步”,进入“Choose
a
Data
Source”。
3“Data
Source”更改为“Microsoft
Excel
97-2000”;“File
name”选择到指定路径下excel文档(重新制作或者以前导出的)。
4
点击“下一步”,进入“Choose
a
destination”。
5.“Destination”更改为“Microsoft
OLE
DB
Provider
for
SQL
Server”;“Server”更改为“笔记本(工控机)名称\WINCC”;下一步使用WINDOWS认证“Use
Windows
Authentication”;“Database”更改为“项目运行系统下的路径(例如:CC_BGSYJ_14_02_24_11_22_22R)”。
6.点击“下一步”,进入“Specify
Table
Copy
Query”。
7
点击“下一步”,进入“Select
Source
Table
and
Views”。
8.选择要将excel文档导入到的数据库表,然后点击“下一步”,进入“Save,Schedule,and
replicate
package”。
9
点击“下一步”,“完成”,“确定”,“Done”,数据导入完成。
DTS 导入、导出向导帮助用户交互式地建立包,从而在具有OLE DB 和ODBC 驱动程序的源和目标数据源间进行数据的导入、导出和转换。下面将以两个具体例子来讲解如何使用DTS 向导,同时将对其中涉及的每一个选项进行详细的介绍。
例18-1: 使用DTS 向导导出pubs 数据库中的authors 表。
利用SQL Server Enterprise Manager 执行数据导出的步骤为:
(1) 启动SQL Server Enterprise Manager 后,登录到指定的服务器,右击Data Transformation Services 文件夹,在d出菜单中选择All tasks, Export data,打开DTS Export Wizard, 如图18-1 所示。
1167834486_ddvip_4288gif
(2) 单击“下一步”按钮,打开Choose a Data Source 对话框,如图18-2 所示。首先在Source Server 旁的下拉列表中选择数据源。在本例中选择Microsoft OLE DB Provider for SQL Server。 如果使用SQL Server 认证方式,则应输入访问数据库的合法用户账号和密码,在Database 旁的下拉列表中选择pubs (先单击Refresh 按钮)。
1167834486_ddvip_3082gif
(3) 单击“下一步”按钮,打开Choose a Destination 对话框,如图18-3 所示。在Destination 旁的下拉列表中选择Microsoft OLE DB Provider for SQL Server。 Database 旁的下拉列表中选择DBA_pubs 数据库。
1167834486_ddvip_3964gif
(4) 单击“下一步”按钮,打开Specify Table Copy or Query 对话框,如图18- 4 所示。在此处可以指定传递的内容,可以传递表或某一查询的数据结果集甚至于数据库对象。在本例中选择Copy table s from the source database。
1167834486_ddvip_5053gif
(5) 单击“下一步”打开Select Source Table and View 对话框,如图18-5 所示。从中选择一个或多个表或视图进行传递。通过Preview 按钮可对将要传递的数据进行预览。
1167834487_ddvip_1760gif
(6) 如果想定义数据转换时源表和目标表之间列的对应关系,则单击Trnsform 列的方格按钮,打开Columns Mapping, Transformation ,and Constrains 对话框,如图18-6 所示。
其中各选项的含义如下: Create destination table: 在从源表拷贝数据前首先创建目标表,在缺省情况下总是假设目标表不存在,如果存在则发生错误、除非选中了Drop and recreate destination table if it exists 选项; Delete rows in destination table: 在从源表拷贝数据前将目标表的所有行删除,仍保留目标表上的约束和索引,当然使用该选项的前提是目标表必须存在; Append rows to destination table: 把所有源表数据添加到目标表中,目标表中的数据、索引、约束仍保留。但是数据不一定追加到目标表的表尾,如果目标表上有聚簇索引,则可以决定将数据插入何处; Drop and recreate destination table: 如果目标表存在,则在从源表传递来数据前将目标表、表中的所有数据、索引等删除后重新创建新目标表; Enable identity insert: 允许向表的标识列中插入新值。
(7) 在进行数据转换时,可以通过脚本语言(如Jscript Perscript Vbscript)对源表中的某一列施加某种运算(乘、除或将该分割成几列、或将几列合并成一列),然后再将这种结果复制到目标表。此时应选中Columns Mapping、 Transformation, and Constrains 对话框的 Transformations 标签页,如图18-7 所示。
1167834487_ddvip_6508gif
1167834487_ddvip_5096gif
(8) 应选中Columns Mapping、 Transformation、 and Constraints 对话框的 Constraints 标签页,如图18-8 所示。
1167834487_ddvip_9253gif
(9) 返回Select Source Table 对话框,单击“下一步”打开Save, Schedule and Replicate Package 对话框,如图18-9 所示。
1167834487_ddvip_4683gif
在When 选项区可以选择与包有关的 *** 作: Run immediately: 表示立即运行包; Create DTS package for Replication: 表示让由发布目标来进行复制; Schedule DTS package for later execution: 表示将包保存之后,在以后的某一规划时间运行。
在Save 选项,选中Save DTS Package, 则将包进行保存。 SQL Server: 将包存储在msdb 数据库中; SQL Server Meta Data Service :将包存储在Repository 中; Structured Storage File: 以DTS COM 结构的文件格式存储。容易通过文件服务器进行邮递和分发。 Visual Basic File (10) 单击“下一步”,打开Save DTS Package 对话框,如图18-10 所示。在 Name 输入该包的名称AuthorsPackage, 可以将包保存在本地服务器或其它的远程服务器,也可以选择适当的认证方式,如果选择SQL Server 认证,要提供用户名和密码。
1167834487_ddvip_3921gif
(11) 单击“下一步”,在Completing the DTS Import/Export Wizard 对话框中单击“完成”,结束包的创建。 *** 作如图18-11 所示。
注意:在步聚(4)的specity table copy or query 双对框中,如果选中use a query to specify the data to transfer选项,单击“下一步”之后打开之后打开type sol statement对话框,如图18-12所示。在query statement下的空白框中输入select语句,则该查询语句的结果集成是所有转换数据。可以通过单击query builder按钮来激活创建查询向导。
1167834487_ddvip_43gif1167834487_ddvip_7767gif1167834487_ddvip_5800gif1167834488_ddvip_3478gif1167834488_ddvip_4832gif1167834488_ddvip_970gif1167834488_ddvip_786gif
文章知识点与官方知识档案匹配
MySQL入门技能树SQL高级技巧CTE和递归查询
45585 人正在系统学习中
关注展开
打开CSDN APP,看更多技术内容
数据库导入导出工具(dts)
目前只做了 mysql 数据库导入导出工具 使用属性文件配置数据库 可扩展其它数据库的导入导出 导出数据格式为xml文件支持超大数据文件(百兆以上)导入导出
compile、implemention、api、compileOnly的区别
在gradle30中,如果我们依然使用compile依赖的话会有如下提示Configuration ‘compile’ is obsolete and has been replaced with ‘implementation’ and ‘api’ 可见,compile依赖关系已被弃用,被implementation和api替代,同样,provided也被compile only替代。
继续访问
Android 修炼手册Gradle 篇 -- Gradle 的基本使用
预备知识 基本的 android 开发知识 了解 Android Studio 基本使用 看完本文可以达到什么程度 掌握 gradle 的基本使用 了解 gradle 及 android gradle plugin 了解 gradle 构建阶段及生命周期回调 掌握 Task,Transform 等概念 学会自定义 task,自定义 gradle 插件 如果您已经达到上面的程度,那么可以不用
继续访问
使用compileOnly依赖jar包,却仍然参与打包的问题
1删除implementation fileTree(dir: ‘libs’, include: [’jar’]) 2使用compileOnly引入编译时需要但不打包的jar
继续访问
热门推荐 gradle compileOnly的使用场景
Android studio升级到30之后,依赖方式也有了更新。 这是2x png 来源网络 这是30 png 来源网络 其中2x版本的 Provided 变成了 compileOnly 这个命令的意思是 只在编译时有效,不会参与打包 举个例子: 新建一个工程,同时新建一个library png testlibrary的gra
继续访问
用DTS方式实现数据导入导出 *** 作
1、首先在Navicat for MySQL 管理器中,创建目标数据库。
2、点击创建好的目标数据库website点的”表“一项,在右边会出现导入向导选项。
3、选择SQL Server数据库ODBC,“下一步”,数据链接属性-SQLSERVER-ODBC。
4、创建访问SQL SERVER ODBC。
5、回到导入向导中发现,已经可以查看到SQL Server源数据库中所有的表,选择需要导入的表,选择“添加”。
6、“下一步”-》“开始导入”,就可以了。
要将sql server数据库中的数据全部导入到mysql数据库中,其方法有多种,利用mysql ODBC把SQL Server中数据库中的数据导入到MySQL中
第一步:安装mysql ODBC;
去相关的网站下载mysql ODBC进行安装。
第二步:建立MySQL的DSN;
在控制面板——>管理工具——>数据源 (ODBC)中建立MySQL的DSN。
例如: Data Source Name: MySQL DSN
Server: localhost
User: root
Password: root
Database: mysql
第三步:SQL Server中,选择要导出的数据库,右键选择All Tasks->Export Datas 开始DTS Export Wizerd。
第四步:Choose a Data Source;
例如:Data Source: Microsoft OLE DB Provider for SQL Server
Server: 1164013
Username: admin
Password: admin
Database: ORDER
第五步:Choose a Destination。
例如:Data Source: MySQL ODBC 315 Driver
User/System DSN: MySQL DSN
Username: root
Password: root
第六步:Select Source Table。
第七步:Run immediately,下一步再选完成,就开始转换。
总结:
这个转换有时一部分表可能要失败,双击失败的表格,看看什么原因,一般是SQL SERVER2000的数据类型问题,作一些小的修改就应该可以了。
——Biomart下载基因和motif位置信息
科研过程中我们经常会使用Ensembl(>
几个简单的步骤大幅提高Oracle性能 我优化数据库的三板斧
数据库优化的讨论可以说是一个永恒的主题 资深的Oracle优化人员通常会要求提出性能问题的人对数据库做一个statspack 贴出数据库配置等等 还有的人认为要抓出执行最慢的语句来进行优化 但实际情况是 提出疑问的人很可能根本不懂执行计划 更不要说statspack了 而我认为 数据库优化 应该首先从大的方面考虑 网络 服务器硬件配置 *** 作系统配置 Oracle服务器配置 数据结构组织 然后才是具体的调整 实际上网络 硬件等往往无法决定更换 应用程序一般也无法修改 因此应该着重从数据库配置 数据结构上来下手 首先让数据库有一个良好的配置 然后再考虑具体优化某些过慢的语句 我在给我的用户系统进行优化的过程中 总结了一些基本的 简单易行的办法来优化数据库 算是我的三板斧 呵呵 不过请注意 这些不一定普遍使用 甚至有的会有副作用 但是对OLTP系统 基于成本的数据库往往行之有效 不妨试试 (注 附件是Burleson写的用来报告数据库性能等信息的脚本 本文用到)
一.设置合适的SGA
常常有人抱怨服务器硬件很好 但是Oracle就是很慢 很可能是内存分配不合理造成的 ( )假设内存有 M 这通常是小型应用 建议Oracle的SGA大约 M 其中 共享池(SHARED_POOL_SIZE)可以设置 M到 M 根据实际的用户数 查询等来定 数据块缓冲区可以大致分配 M M i下需要设置DB_BLOCK_BUFFERS DB_BLOCK_BUFFERDB_BLOCK_SIZE等于数据块缓冲区大小 i 下的数据缓冲区可以用db_cache_size来直接分配
( )假设内存有 G Oracle 的SGA可以考虑分配 M 共享池分配 M到 M 数据缓冲区分配 M到 M
( )内存 G SGA可以考虑分配 G 共享池 M到 M 剩下的给数据块缓冲区
( )内存 G以上 共享池 M到 M就足够啦 再多也没有太大帮助 (Biti_rainy有专述)数据缓冲区是尽可能的大 但是一定要注意两个问题 一是要给 *** 作系统和其他应用留够内存 二是对于 位的 *** 作系统 Oracle的SGA有 G的限制 有的 位 *** 作系统上可以突破这个限制 方法还请看Biti的大作吧
二.分析表和索引 更改优化模式
Oracle默认优化模式是CHOOSE 在这种情况下 如果表没有经过分析 经常导致查询使用全表扫描 而不使用索引 这通常导致磁盘I/O太多 而导致查询很慢 如果没有使用执行计划稳定性 则应该把表和索引都分析一下 这样可能直接会使查询速度大幅提升 分析表命令可以用ANALYZE TABLE 分析索引可以用ANALYZE INDEX命令 对于少于 万的表 可以考虑分析整个表 对于很大的表 可以按百分比来分析 但是百分比不能过低 否则生成的统计信息可能不准确 可以通过DBA_TABLES的LAST_ANALYZED列来查看表是否经过分析或分析时间 索引可以通过DBA_INDEXES的LAST_ANALYZED列
下面通过例子来说明分析前后的速度对比 (表CASE_GA_AJZLZ大约有 万数据 有主键)首先在SQLPLUS中打开自动查询执行计划功能 (第一次要执行\RDBMS\ADMIN\utlxplan sql来创建PLAN_TABLE这个表)
SQL> SET AUTOTRACE ON SQL>SET TIMING ON
通过SET AUTOTRACE ON 来查看语句的执行计划 通过SET TIMING ON 来查看语句运行时间
SQL> select count() from CASE_GA_AJZLZ; COUNT() 已用时间: : : Execution Plan SELECT STATEMENT Optimizer=CHOOSE SORT (AGGREGATE) TABLE ACCESS (FULL) OF CASE_GA_AJZLZ ……………………
请注意上面分析中的TABLE ACCESS(FULL) 这说明该语句执行了全表扫描 而且查询使用了 秒 这时表还没有经过分析 下面我们来对该表进行分析
SQL> yze table CASE_GA_AJZLZ pute statistics;
表已分析 已用时间: : : 然后再来查询
SQL> select count() from CASE_GA_AJZLZ; COUNT() 已用时间: : : Execution Plan SELECT STATEMENT Optimizer=FIRST_ROWS (Cost= Card= ) SORT (AGGREGATE) INDEX (FAST FULL SCAN) OF PK_AJZLZ (UNIQUE) (Cost= Card= ) …………………………
请注意 这次时间仅仅用了 秒!这要归功于INDEX(FAST FULL SCAN) 通过分析表 查询使用了PK_AJZLZ索引 磁盘I/O大幅减少 速度也大幅提升!下面的实用语句可以
用来生成分析某个用户的所有表和索引 假设用户是GAXZUSR
SQL> set pagesize SQL> spool d:\ yze_tables sql; SQL> select yze table ||owner|| ||table_name|| pute statistics; from dba_tables where owner= GAXZUSR ; SQL> spool off SQL> spool spool d:\ yze_indexes sql; SQL> select yze index ||owner|| ||index_name|| pute statistics; from dba_indexes where owner= GAXZUSR ; SQL> spool off SQL> @d:\ yze_tables sql SQL> @d:\ yze_indexes sql
解释 上面的语句生成了两个sql文件 分别分析全部的GAXZUSR的表和索引 如果需要按照百分比来分析表 可以修改一下脚本 通过上面的步骤 我们就完成了对表和索引的分析 可以测试一下速度的改进啦 建议定期运行上面的语句 尤其是数据经过大量更新
当然 也可以通过dbms_stats来分析表和索引 更方便一些 但是我仍然习惯上面的方法 因为成功与否会直接提示出来
另外 我们可以将优化模式进行修改 optimizer_mode值可以是RULE CHOOSE FIRST_ROWS和ALL_ROWS 对于OLTP系统 可以改成FIRST_ROWS 来要求查询尽快返回结果 这样即使不用分析 在一般情况下也可以提高查询性能 但是表和索引经过分析后有助于找到最合适的执行计划
三.设置cursor_sharing=FORCE 或SIMILAR
这种方法是 i才开始有的 oracle 不支持 通过设置该参数 可以强制共享只有文字不同的语句解释计划 例如下面两条语句可以共享
SQL> SELECT FROM MYTABLE WHERE NAME= tom SQL> SELECT FROM MYTABLE WHERE NAME= turner
这个方法可以大幅降低缓冲区利用率低的问题 避免语句重新解释 通过这个功能 可以很大程度上解决硬解析带来的性能下降的问题 个人感觉可根据系统的实际情况 决定是否将该参数改成FORCE 该参数默认是exact 不过一定要注意 修改之前 必须先给ORACLE打补丁 否则改之后oracle会占用 %的CPU 无法使用 对于ORACLE i 可以设置成SIMILAR 这个设置综合了FORCE和EXACT的优点 不过请慎用这个功能 这个参数也可能带来很大的负面影响!
四.将常用的小表 索引钉在数据缓存KEEP池中
内存上数据读取速度远远比硬盘中读取要快 据称 内存中数据读的速度是硬盘的 倍!如果资源比较丰富 把常用的小的 而且经常进行全表扫描的表给钉内存中 当然是在好不过了 可以简单的通过ALTER TABLE tablename CACHE来实现 在ORACLE i之后可以使用ALTER TABLE table STORAGE(BUFFER_POOL KEEP) 一般来说 可以考虑把 数据块之内的表放在keep池中 当然要根据内存大小等因素来定 关于如何查出那些表或索引符合条件 可以使用本文提供的access sql和access_report sql 这两个脚本是著名的Oracle专家 Burleson写的 你也可以在读懂了情况下根据实际情况调整一下脚本 对于索引 可以通过ALTER INDEX indexname STORAGE(BUFFER_POOL KEEP)来钉在KEEP池中
将表定在KEEP池中需要做一些准备工作 对于ORACLE i 需要设置DB_KEEP_CACHE_SIZE 对于 i 需要设置buffer_pool_keep 在 i中 还要修改db_block_lru_latches 该参数默认是 无法使用buffer_pool_keep 该参数应该比 CPU数量少 但是要大于 才能设置DB_KEEP_CACHE_BUFFER buffer_pool_keep从db_block_buffers中分配 因此也要小于db_block_buffers 设置好这些参数后 就可以把常用对象永久钉在内存里
五.设置optimizer_max_permutations
对于多表连接查询 如果采用基于成本优化(CBO) ORACLE会计算出很多种运行方案
从中选择出最优方案 这个参数就是设置oracle究竟从多少种方案来选择最优 如果设置太大 那么计算最优方案过程也是时间比较长的 Oracle 和 i默认是 建议改成 对于 i 已经默认是 了
六.调整排序参数
( ) SORT_AREA_SIZE:默认的用来排序的SORT_AREA_SIZE大小是 K 通常显得有点小 一般可以考虑设置成 M( ) 这个参数不能设置过大 因为每个连接都要分配同样的排序内存
lishixinzhi/Article/program/Oracle/201311/18879
以上就是关于数据库中choose case语句使用方法和例题全部的内容,包括:数据库中choose case语句使用方法和例题、如何将数据库表导入到excel表格数据、将sql中dts向导集成到程序中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)