Oracle exp query条件检索在WINDOWS和LINUX下的命令区别

简介:

今天因为业务需要,运行了EXP的条件导出,发现WINDOWS和LINUX下有些差别,主要区别在于敏感字符,实例如下:

LINUX:

exp us/pass TABLES=\(t_ec_event\) file=/tmp/test.dmp QUERY=\"WHERE eventid =\'40288a2627f491080127fab7f17232b4\'\" 

WINDOWS:

exp us/pass@test TABLES=(t_ec_event) file=test.dmp QUERY='WHERE eventid ="40288a2627f491080127fab7f17232b4"' 

更多资料如下:

Oracle的exp工具有一个query参数可以指定一个where条件来有条件地导出记录, 对于不经常用这个选项的人来说, 经常会遇到这样的错误:

LRM-00112: multiple values not allowed for parameter 'query'

EXP-00019: failed to process parameters, type 'EXP HELP=Y' for help
EXP-00000: Export terminated unsuccessfully

这是因为在where条件中一般都会有空格, 而命令行下就会被释成几个命令行参数, 需要用单引号或双引号将整个where条件括起来, 就可以了. 在Windows下, 如何指定query参数:

exp ... query='where deptno=10'
exp ... query='where deptno=''10'''
exp ... query='where deptno"<"10'

在Solaris(C shell)下, 如何指定query参数:

exp ..... query=\"where col1 \< 1000\"
exp ..... query=\"where col1 \< '1000'\"

其他Unix平台的应当和Solaris下的一样, 我自已也经常搞错. 在上面的例子中已经说明了如何在query值中使用单引号, 因此在看完这篇后, 就应当可以写出正确的where条件了. 最好是写在一个参数文件里, 这样的话就不用注意这些了.



本文转自zylhsy 51CTO博客,原文链接:http://blog.51cto.com/yunlongzheng/665308,如需转载请自行联系原作者

相关文章
|
3月前
|
Linux 虚拟化 iOS开发
VMware Remote Console 13.0.1 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
VMware Remote Console 13.0.1 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
773 0
VMware Remote Console 13.0.1 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
|
4月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
148 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
6月前
|
Linux 虚拟化 iOS开发
VMware Workstation 17.6.4 Pro Unlocker & OEM BIOS 2.7 for Windows & Linux
VMware Workstation 17.6.4 Pro Unlocker & OEM BIOS 2.7 for Windows & Linux
1737 0
VMware Workstation 17.6.4 Pro Unlocker & OEM BIOS 2.7 for Windows & Linux
|
8月前
|
Oracle Cloud Native 关系型数据库
Oracle Linux 10 - Oracle 提供支持 RHEL 兼容发行版
Oracle Linux 10 - Oracle 提供支持 RHEL 兼容发行版
376 11
Oracle Linux 10 - Oracle 提供支持 RHEL 兼容发行版
|
5月前
|
存储 Ubuntu 安全
Linux中Centos和Ubuntu的区别
CentOS主要面向服务器环境,而Ubuntu适用于服务器和桌面环境。   CentOS提供更精简的安装,而Ubuntu提供更广泛的开箱即用功能。   CentOS遵循RHEL的所有安全实践,而Ubuntu在安全方面采取更积极的方法。
|
5月前
|
Ubuntu 安全 Unix
Linux和Ubuntu有什么区别
综上所述,Linux和Ubuntu之间存在明显的区别。Linux是一种操作系统内核,而Ubuntu是基于Linux内核的发行版本,具有更好的易用性、社区支持和软件仓库。用户可以根据自己的需求选择不同的Linux发行版本,如果需要一个稳定、易于使用的桌面环境,Ubuntu是一个不错的选择。如果需要更加灵活和定制性强的系统,其他Linux发行版本可能更加适合。
|
5月前
|
Ubuntu Linux 数据安全/隐私保护
Windows上快速安装Linux子系统Ubuntu
Installing, this may take a few minutes...WslRegisterDistribution failed with error: 0x800701bcError: 0x800701bc WSL 2 ?????????????????? https://aka.ms/wsl2kernelPress any key to continue... 原因是 wsl1 升级到 wsl2 之后,内核却没有升级。 解决:下载最新的wsl安装包(wsl安装包)
|
6月前
|
Linux 虚拟化 iOS开发
VMware Remote Console 13.0.0 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
VMware Remote Console 13.0.0 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
1606 0
VMware Remote Console 13.0.0 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
|
6月前
|
安全 Unix Java
linux中kill -9和kill -15区别
在 Linux/Unix 系统中,`kill -9` 和 `kill -15` 是终止进程的常用命令,核心区别在于发送的信号类型不同,导致进程终止行为截然不同。`kill -15`(SIGTERM)允许进程进行清理操作后优雅退出,适用于正常关闭;而 `kill -9`(SIGKILL)则强制终止进程,不给予任何清理机会,仅在进程无响应时使用。本文从信号类型、行为、工作原理及使用建议等方面进行详细对比,帮助你更安全、有效地管理进程。
868 0
|
6月前
|
监控 Linux 网络安全
FinalShell SSH工具下载,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux
FinalShell是一款国人开发的多平台SSH客户端工具,支持Windows、Mac OS X和Linux系统。它提供一体化服务器管理功能,支持shell和sftp同屏显示,命令自动提示,操作便捷。软件还具备加速功能,提升访问服务器速度,适合普通用户和专业人士使用。
2395 0