小编Rol*_*and的帖子

检查varchar2是否为空的正确方法是什么?

根据官方11g文档

Oracle数据库当前将长度为零的字符值视为null.但是,在将来的版本中,这可能不会继续存在,Oracle建议您不要将空字符串视为与空值相同.

考虑一个getVersion返回varchar2 的函数,该函数可能是'':

l_version := x.getVersion;
if l_version is null then
  return 'V.1.0';
end if;
Run Code Online (Sandbox Code Playgroud)

这将在当前的Oracle 11g上正常工作,但是一旦未来的Oracle版本处理''不同,它可能会中断null.

我认为做上述未来证明的唯一方法是:

if l_version is null or l_version = '' then

有一种不那么繁琐的方式吗?

oracle varchar plsql varchar2

8
推荐指数
2
解决办法
2729
查看次数

Oracle的NLS_NCHAR_CHARACTERSET和NLS_CHARACTERSET之间的区别

我在这里有一个简单的问题,我想知道oracle中NLS_NCHAR_CHARACTERSET和NLS_CHARACTERSET设置之间的区别?

根据我的理解,NLS_NCHAR_CHARACTERSET用于NVARCHAR数据类型,NLS_CHARACTERSET用于VARCHAR2数据类型.

我试图在我的开发服务器上测试这个,我对CHARACTERSET的当前设置如下: -

PARAMETER                      VALUE
------------------------------ ----------------------------------------
NLS_NCHAR_CHARACTERSET         AL16UTF16
NLS_NUMERIC_CHARACTERS         .,
NLS_CHARACTERSET               US7ASCII
Run Code Online (Sandbox Code Playgroud)

然后我将一些中文字符值插入数据库.我将字符插入名为data_的表中,并更新了ADDRESS和ADDRESS_2列,这些列是VARCHAR2列.根据我对NLS_CHARACTERSET US7ASCII的当前设置的理解,不应该支持中文字符,但它仍然显示在数据库中?NLS_NCHAR_CHARACTERSET优先于此?

谢谢.

oracle ascii utf character-encoding varchar2

8
推荐指数
1
解决办法
2万
查看次数

构造函数总是一个函数对象吗?

我正在阅读2011年6月5.1版的最新ECMA-262参考资料.

在第8.6.2节表9中,我们关于[[Construct]]内部属性:

创建一个对象.通过new运算符调用.SpecOp的参数是传递给new运算符的参数.实现此内部方法的对象称为构造函数.

该标准并未说明构造函数必须是Function对象.那么我们可以有一个不是函数对象的构造函数对象吗?

根据要求链接到标准

javascript

6
推荐指数
1
解决办法
228
查看次数

如何在 AIX 中创建空 tar 文件

如何在 AIX 中创建空 tar 文件?

$touch myfile.tar不起作用。

shell aix tar

6
推荐指数
1
解决办法
1973
查看次数

如何保存状态(所有打开的窗口和选项卡)?

是否可以保存当前状态(所有打开的窗口、选项卡、连接、文件等),关闭 SQL Developer,改天重新启动它并在您离开的地方继续工作?

oracle-sqldeveloper

6
推荐指数
1
解决办法
9546
查看次数

如何以与List.hashCode()相同的方式计算流的哈希码

我刚刚意识到使用Stream.reduce(...)实现以下算法来计算流的哈希码是不可能的.问题是哈希码的初始种子1不是累加器的标识.

List.hashCode()的算法 :

int hashCode = 1;
for (E e : list)
  hashCode = 31*hashCode + (e==null ? 0 : e.hashCode());
Run Code Online (Sandbox Code Playgroud)

您可能会想到以下内容是正确的,但事实并非如此,尽管如果流处理没有拆分它会起作用.

List<Object> list = Arrays.asList(1,null, new Object(),4,5,6);
int hashCode = list.stream().map(Objects::hashCode).reduce(1, (a, b) -> 31 * a + b);
Run Code Online (Sandbox Code Playgroud)

看来,这样做的唯一明智的方法是得到IteratorStream和做正常的顺序处理或将其收集到List第一.

java hash hashcode java-stream

6
推荐指数
1
解决办法
1666
查看次数

(p ++) - > x为什么括号不必要?(K&R)

来自K&R 的The C Programming Language第123页:

(p ++) - > x在访问x后递增p.(最后一组括号是不必要的.为什么?)

为什么不考虑->绑定强于++

编辑:对比给定的表达式++p->x,后者被评估为++(p->x)增量x,而不是p.所以在这种情况下,括号必要的,(++p)->x如果我们想增加,我们必须写p.

c

5
推荐指数
2
解决办法
234
查看次数

getResourceAsStream线程安全吗?

Web服务器上的代码:

public byte[] loadData() {
    byte[] data = null;
    try(final InputStream resourceStream = getClass().getResourceAsStream("data.bin")) { 
        data = ByteStreams.toByteArray(resourceStream); //ByteStreams is from Guava library
    } catch (IOException e) {
        e.printStackTrace();
    }
    return data;
}
Run Code Online (Sandbox Code Playgroud)

几个线程在资源上打开流并读取其内容是否存在问题?在这种情况下,资源是jar中包含的数据文件.

在Windows上同时读取资源不是问题.但是这没有效率,所以我选择使用WeakReference和双重检查锁定来加载数据一次.

java multithreading

5
推荐指数
1
解决办法
1467
查看次数

如何配置ColdFusion Eclipse调试器

我正在运行ColdFusion Builder 3(Express版)以连接到本地运行的ColdFusion 9服务器(Windows机器).

当我在CF Builder上设置RDS配置并单击Test Connection时, 一切正常.

RDS配置设置

但是当我点击Test Debugger时,我收到以下错误:

无法初始化类coldfusion.log.CFLogs

RDS错误消息

这是CF Builder 3试图访问CF 9服务器的问题吗?

coldfusion coldfusionbuilder coldfusion-9

5
推荐指数
1
解决办法
441
查看次数

将函数局部变量导出到环境

考虑以下代码:

#!/usr/bin/bash

t_export() {
  declare dummy="Hello"
  export dummy
  echo dummy: $dummy
  echo printenv dummy: $(printenv dummy)
}

t_export
echo dummy: $dummy
echo printenv dummy: $(printenv dummy)
Run Code Online (Sandbox Code Playgroud)

输出:

dummy: Hello
printenv dummy: Hello
dummy:
printenv dummy:
Run Code Online (Sandbox Code Playgroud)

你如何解释这一点?我认为环境始终是全局的,因此变量dummy在函数外部也是可见的。

bash environment-variables

5
推荐指数
2
解决办法
2783
查看次数