小编Mar*_*son的帖子

401
推荐指数
21
解决办法
18万
查看次数


Oracle:如何UPSERT(更新或插入表?)

UPSERT操作更新或在表中插入一行,具体取决于表是否已有一行与数据匹配:

if table t has a row exists that has key X:
    update t set mystuff... where mykey=X
else
    insert into t mystuff...
Run Code Online (Sandbox Code Playgroud)

由于Oracle没有特定的UPSERT语句,最好的方法是什么?

sql oracle merge upsert

277
推荐指数
9
解决办法
39万
查看次数

如何在使用新语言功能的程序中检查Python版本?

如果我的Python脚本至少需要特定版本的Python,那么在使用早期版本的Python启动脚本时,正确失败的正确方法是什么?

如何及早获得控制权以发出错误消息并退出?

例如,我有一个使用ternery操作符(2.5中的新增内容)和"with"块(2.6中的新增内容)的程序.我写了一个简单的小解释器 - 版本检查器例程,这是脚本会调用的第一件事......除了它没有那么远.相反,在我的例程被调用之前,脚本在python编译期间失败.因此,脚本的用户会看到一些非常模糊的synax错误回溯 - 这几乎需要专家推断它只是运行错误版本的Python的情况.

我知道如何检查Python的版本.问题是某些语法在旧版本的Python中是非法的.考虑这个程序:

import sys
if sys.version_info < (2, 4):
    raise "must use python 2.5 or greater"
else:
    # syntax error in 2.4, ok in 2.5
    x = 1 if True else 2
    print x
Run Code Online (Sandbox Code Playgroud)

在2.4下运行时,我想要这个结果

$ ~/bin/python2.4 tern.py 
must use python 2.5 or greater
Run Code Online (Sandbox Code Playgroud)

而不是这个结果:

$ ~/bin/python2.4 tern.py 
  File "tern.py", line 5
    x = 1 if True else 2
           ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

(引导同事.)

python version

235
推荐指数
8
解决办法
25万
查看次数

Python:类似拉链的功能,填充到最长的长度?

是否有一个内置函数,zip()但它会填充结果,以便结果列表的长度是最长输入的长度而不是最短的输入?

>>> a=['a1']
>>> b=['b1','b2','b3']
>>> c=['c1','c2']

>>> zip(a,b,c)
[('a1', 'b1', 'c1')]

>>> What command goes here?
[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
Run Code Online (Sandbox Code Playgroud)

python zip list

146
推荐指数
4
解决办法
7万
查看次数

Python:最常用的方法是将None转换为空字符串?

做以下事情的最惯用方法是什么?

def xstr(s):
    if s is None:
        return ''
    else:
        return s

s = xstr(a) + xstr(b)
Run Code Online (Sandbox Code Playgroud)

更新:我正在使用Tryptich的建议来使用str(s),这使得这个例程适用于除字符串之外的其他类型.Vinay Sajip的lambda建议给我留下了深刻的印象,但我想保持我的代码相对简单.

def xstr(s):
    if s is None:
        return ''
    else:
        return str(s)
Run Code Online (Sandbox Code Playgroud)

python string idioms

139
推荐指数
10
解决办法
16万
查看次数

是否有用于数据库结构更改的版本控制系统?

我经常遇到以下问题.

我正在对需要数据库中的新表或列的项目进行一些更改.我进行数据库修改并继续我的工作.通常,我记得记下这些更改,以便可以在实时系统上复制它们.但是,我并不总是记得我改变了什么,我也不记得写下来.

所以,我推动了现场系统并得到一个很大的,明显的错误,没有NewColumnX,呃.

无论这可能不是这种情况的最佳实践,是否有数据库的版本控制系统?我不关心具体的数据库技术.我只是想知道一个是否存在.如果它恰好适用于MS SQL Server,那么很棒.

sql database oracle version-control

119
推荐指数
16
解决办法
3万
查看次数

外键在数据库设计中是否真的必要?

据我所知,外键(FK)用于帮助程序员以正确的方式操作数据.假设程序员实际上已经以正确的方式执行此操作,那么我们真的需要外键的概念吗?

外键还有其他用途吗?我在这里错过了什么吗?

database oracle foreign-keys

104
推荐指数
14
解决办法
3万
查看次数

MacOS:/dev/tty.*和/dev/cu.*之间有什么区别?

每个串行设备显示两次/dev,一次为a tty.*,一次为a cu.*.

什么是cu.*设备?它与tty.*设备有何不同?

mh@maru ~ --> ls -l /dev/*.usbmodem621
crw-rw-rw-  1 root  wheel   11,   5 Dec 25 18:00 /dev/cu.usbmodem621
crw-rw-rw-  1 root  wheel   11,   4 Dec 25 18:00 /dev/tty.usbmodem621
Run Code Online (Sandbox Code Playgroud)

macos serial-port tty

81
推荐指数
1
解决办法
4万
查看次数

C中最好的计时方法?

以高分辨率和可移植性为代码部分计时的最佳方法是什么?

/* Time from here */
ProcessIntenseFunction();
/* to here. */

printf("Time taken %d seconds %d milliseconds", sec, msec);
Run Code Online (Sandbox Code Playgroud)

是否有一个具有跨平台解决方案的标准库?

c performance timer timing

79
推荐指数
3
解决办法
10万
查看次数