您现在的位置是:首页 >技术交流 >Oracle中的数据导出(3)网站首页技术交流
Oracle中的数据导出(3)
假如我现在不想再打开DOS界面输入命令导出数据,那又有什么简单便捷的方法实现呢?
我将在本篇描述一种自动化的操作方法,简单讲就是:我把需要查询的数据脚本放在桌面的一个mini,通过双击快捷图标直接实现数据结果导出到文本文档。下面是实现该步骤的具体操作,一定要仔细看哦!
1.首先还是要在桌面创建一个记事本,然后在文本中输入操作系统的命令:
sqlplus /nolog @data.sql
exit
如下图所示:
对两条命令进行注释:
- sqlplus 是一个交互式的命令行工具,用于执行 SQL 语句或 PL/SQL 代码。
- /nolog 是 sqlplus 的一个参数,它表示以“不登录”的方式启动 sqlplus,即不连接到任何数据库实例,也不指定任何用户名和密码。我在这里使用/nolog而不使用scott/tiger的方式启动sql*plus的目的就是为了安全考虑,我不想让其他人看到用户的密码。
- "@" 符号可以用来执行一个 SQL 脚本文件,后面跟着脚本文件的路径和名称。所以@data.sql表示在sql*plus启动之后会立即运行统一目录下的Oracle脚本文件data.sql。
- "exit"表示推出DOS窗口,如果脚本中不写exit命令,执行完所有的命令之后DOS窗口就停留在桌面上,看上去很不雅观,换种说法就是不够专业,哈哈哈!!!
因此,sqlplus /nolog @data.sql 命令的含义是启动sqlplus但是并没有登录数据库,而是在不连接数据库的情况下,从 data.sql 文件中读取 SQL 启动语句并执行。
这种方式通常用于执行一系列 SQL 语句或 PL/SQL 代码以完成某个操作(如数据导入、数据备份等),也可以用来进行一些初始化操作。
注意:
如果 data.sql 中包含连接数据库的语句(如 CONNECT 或者 ALTER SESSION 等),那么在使用 sqlplus /nolog @data.sql 命令时就不会成功执行这些语句。这时需要先使用 sqlplus 用户名/密码 命令连接数据库,再使用 @@ 或 START 命令来执行脚本。
2.保存刚编辑的文本,然后点击文件→另存为的对话框,选择保存到之前创建的D盘SQL文件夹下,在文件名对应的下拉框中输入文件名,因为我这里是要导出 dept部门表的数据,所以可以命名为:DeptDownLoad.bat,最后点击保存。如下图所示:
备注:
.bat 是 Windows 系统下的批处理文件后缀名,批处理文件是一种包含一系列操作命令的文本文件,可以用于自动化执行一些常见的任务或者操作系统或应用程序。
批处理文件由一系列的命令和参数组合而成,在文件中可以使用循环、条件语句、变量等来实现复杂的操作流程。批处理文件通常以 .bat 结尾,并且可以通过双击直接运行。
批处理文件的作用非常广泛,例如自动化备份和清理操作、定期执行系统维护任务、自动部署程序集或者配置文件等等。当需要重复执行某些命令或操作时,批处理文件可以让这些操作变得更加高效和便捷。
注意:
批处理文件可以在命令提示符窗口中运行,在文件中编写不当的命令可能会对系统造成危害,因此在编写批处理文件时,需要注意安全性和正确性,避免错误操作导致数据丢失或者系统崩溃。
3.为了系统能够自动打开data.sql文件,我需要进入D:SQL文件夹,然后右击data.sql脚本文件,在弹出的快捷菜单中选择【编辑】命令,如图所示:
4.在原来的命令脚本第一行和最后一行输入SQL*PLUS命令:
connect scott/tiger --第一行输入
.
.
.
exit --最后一行输入
详细如下图所示:
备注:
'connect scott/tiger'命令是在 Oracle 数据库中用于连接到数据库实例的命令。其中 'scott' 和 'tiger'是用户名和密码,用于验证数据库的登录。在实际使用时,我们可以将其替换成其他的有效的用户名和密码来完成对数据库的连接。
注意:
- 为了成功进行连接,该命令必须被执行者所具有的权限允许。另外,在部分版本的 Oracle 数据库中,默认情况下被禁用了 SYSTEM 和 SYS 用户通过 SQLPLUS 直接登录到 Oracle 实例,因此这个命令可能会提示不能连接。如果需要以 SYSTEM 或 SYS 用户身份进行登录,需要额外授权或者使用其他方式进行登录,如使用 DBA 用户进行连接并通过 su 命令切换登录用户等。我们也可以通过配置 tnsnames.ora 文件来指定数据库实例的连接信息,从而可以直接使用 sqlplus、Oracle客户端等工具连接到数据库,而不需要使用 connect 命令手动输入用户名和密码。
- exit命令一定添加上哈,否则SQL*PLUS界面就会留在了桌面上,这样其他用户就会清楚看到我们的用户密码。
最后就是将刚才编辑好的脚本文件保存!
5.为了是我们清楚知道自己后续是否成功导出数据,建议将之前已经存在的 data.txt数据文件先删除掉。
6.右击DOS的批处理文件DeptDownLoad.bat,在弹出的快捷菜单中选择【发送到】→【桌面快捷方式】,如图所示:
我们 将该文件的图标发送到电脑的主桌面上,如下图所示:
7.为了显示我们是专业的哈,直接修改刚才桌面上的图标。操作步骤是:右击该桌面图标,快捷菜单中选择【属性】命令,弹出对话框,如下图所示:
8.单击【更换图标】按钮,打开【更改图标】对话框,选择一个喜欢的图标,我这里选择的是一个【×】,如下图所示:
点击【确定】,接着点击【应用】,最后【确定】完成图标更换,如下图所示:
9.为了显示更加专业,我再把这个文件名更改了。右击图标,选择【重命名】,我这里命名为【删库跑路】(日常不建议这么搞啊,命名一定要规范符合自己工作需要),如下图所示:
10.最后这样看上去就相当专业,排面拉满!!!现在双击【删库跑路】图标就可以实现Oracle数据库中dept部门表数据的导出了。
11.为了验证我刚才的执行是否成功导出数据结果,进入D:SQL文件夹下,发现有一个data.txt文件,如下图所示:
然后双击打开,检查里面的数据内容,确信就是我所需要的结果,那么此次数据导出就完美成功了。结果如下图所示:
总结:
通过上述步骤的描述,可以清楚发现这种方式可以更加快捷方便的导出我们经常需要的数据结果,不需要再进入DOS界面去执行spool命令脚本。
下一篇将讲述如何将输出的数据结果导入到excel表中?敬请期待!