我正在为Oracle数据库编写一些迁移脚本,并且希望Oracle有类似MySQL的IF EXISTS构造.
具体来说,每当我想在MySQL中删除表时,我都会这样做
DROP TABLE IF EXISTS `table_name`;
Run Code Online (Sandbox Code Playgroud)
这样,如果表不存在,DROP则不会产生错误,脚本可以继续.
Oracle是否有类似的机制?我意识到我可以使用以下查询来检查表是否存在
SELECT * FROM dba_tables where table_name = 'table_name';
Run Code Online (Sandbox Code Playgroud)
但是把它与a绑在一起的语法DROP正在逃避我.
我发现Windows中的命令行工作令人沮丧,主要是因为与Linux和OS X上的终端应用程序(如"rxvt","xterm"或"Terminal")相比,控制台窗口使用起来很糟糕.主要投诉:
没有标准的复制/粘贴.你必须打开"标记"模式,它只能从(小)左手角按钮触发的多级弹出窗口中获得.然后需要从同一菜单调用复制和粘贴
您无法通过拖动任意调整窗口大小,每次要调整窗口大小时都需要设置首选项(返回到多级弹出窗口)
在水平滚动条进入图片之前,您只能使窗口变得如此之大.水平滚动条很糟糕.
使用cmd.exe shell,您无法导航到具有\\netpath表示法(UNC?)的文件夹,您需要映射网络驱动器.当处理将要映射不同驱动器的多台计算机时,这很糟糕
是否存在解决这些问题的技巧或应用(付费或其他)?
windows terminal console command-line command-line-interface
MySQL有一个OPTIMIZE TABLE命令,可用于回收MySQL安装中未使用的空间.有没有办法(内置命令或公共存储过程)为数据库和/或服务器安装中的每个表运行此优化,或者这是您必须自己编写脚本的东西?
是否有任何bash命令可以让你获得STDOUT的第n行?
也就是说,会采取这种做法
$ ls -l
-rw-r--r--@ 1 root wheel my.txt
-rw-r--r--@ 1 root wheel files.txt
-rw-r--r--@ 1 root wheel here.txt
Run Code Online (Sandbox Code Playgroud)
并做一些类似的事情
$ ls -l | magic-command 2
-rw-r--r--@ 1 root wheel files.txt
Run Code Online (Sandbox Code Playgroud)
我知道在编写要重用的脚本时这是不好的做法,但是当我每天使用shell时,能够以这种方式过滤我的STDOUT对我来说是有用的.
我也意识到这将是半简单的命令写入(缓冲区STDOUT,返回一个特定的行),但我想知道是否有一些标准的 shell命令来执行此操作,而无需我将脚本放到位.
是否有适用于PHP的强大而成熟的HTML解析器?快速浏览PEAR并没有改变任何东西(很多类用于生成HTML,而不是用于消费),Google教会了我很多人已经开始然后放弃了各种解析器项目.
对XML解析器不感兴趣(除非那时可以使用非格式良好的HTML)或者使用正则表达式自己攻击它.
澄清意图:我对HTML内容的过滤不感兴趣,我很有兴趣从HTML文档中提取信息.
Borderline ServerFault问题,但我正在编写一些shell脚本,所以我先在这里尝试:)
大多数*nixes都有一个命令,可以将输出管道/重定向到本地剪贴板/粘贴板,并从中检索.在OS X上,这些命令是
pbcopy, pbpaste
Run Code Online (Sandbox Code Playgroud)
无论如何在SSH连接到另一台服务器时复制此功能?那是,
是的,我知道我可以(颤抖)使用我的鼠标从命令中选择文本,但我已经习惯了将输出直接压缩到剪贴板的工作流程,我希望我的远程会话也一样.
代码很有用,但也可以采用一般方法.
当使用jQuery连接事件处理程序时,使用click方法之间是否有任何区别
$().click(fn)
Run Code Online (Sandbox Code Playgroud)
与使用绑定方法
$().bind('click',fn);
Run Code Online (Sandbox Code Playgroud)
除了bind的可选数据参数.
新的红宝石,穿上你的新手套.
以下两个片段之间是否有任何区别(模糊或实用)?
my_array = [:uno, :dos, :tres]
my_array.each { |item|
puts item
}
my_array = [:uno, :dos, :tres]
my_array.each do |item|
puts item
end
Run Code Online (Sandbox Code Playgroud)
我意识到括号语法允许你将块放在一行上
my_array.each { |item| puts item }
Run Code Online (Sandbox Code Playgroud)
但除此之外是否有任何令人信服的理由使用一种语法而不是另一种语法?
我有一个从json_decode创建的stdClass对象,当我运行count($ obj)函数时,它不会返回正确的数字.该对象有30个属性,但count()函数的返回值为1.
有任何想法吗?
以下是其中一个对象的示例.(我正在从Twitter请求每日趋势信息).如果此对象具有多个属性,则count($ obj)将等于1.
[trends] => stdClass Object
(
[2009-08-21 11:05] => Array
(
[0] => stdClass Object
(
[query] => "Follow Friday"
[name] => Follow Friday
)
[1] => stdClass Object
(
[query] => "Inglourious Basterds" OR "Inglorious Basterds"
[name] => Inglourious Basterds
)
[2] => stdClass Object
(
[query] => Inglourious
[name] => Inglourious
)
[3] => stdClass Object
(
[query] => #songsincode
[name] => #songsincode
)
[4] => stdClass Object
(
[query] => #shoutout
[name] => …Run Code Online (Sandbox Code Playgroud) PHP中是否有任何反射/内省/魔术可以让你找到定义特定类(或函数)的PHP文件?
换句话说,我有一个PHP类的名称,或一个实例化的对象.我想将此传递给某些东西(函数,Reflection类等),它将返回定义类的文件系统路径.
/path/to/class/definition.php
Run Code Online (Sandbox Code Playgroud)
我意识到我可以使用(get_included_files())获取到目前为止已包含的所有文件的列表,然后手动解析它们,但这是一次尝试的大量文件系统访问.
我也意识到我可以在我们的__autoload机制中编写一些额外的代码来缓存这些信息.但是,在我想到的情况下,修改现有的__autoload是不受限制的.
听说可以做到这一点的扩展会很有趣,但我最终会喜欢可以在"库存"安装上运行的东西.