Curly括号在Oracle Query中是无效字符

时间:2014-03-17 13:29:49

标签: vb.net oracle

我正在vb.net中的按钮代码后面编写一个oracle查询,并在我的WHERE子句中注释掉行后,我认为大括号阻止了我的查询工作。

Dim sQuery As New IO.StringWriter
With sQuery
     .WriteLine("SELECT ...")
     .WriteLine("FROM ...   ")
     .WriteLine("WHERE ... ")
     .WriteLine("AND ((dateValue>={ts '2014-01-01 00:00:00'} ")
     .WriteLine("AND dateValue2<{ts '2015-01-01 00:00:00'})  ")
     .WriteLine("AND ROWNUM =1 ")

2 个答案:

答案 0 :(得分:1)

我不明白为什么你试图逃避查询,因为没有大括号就没关系。

使用to_date将文本转换为日期:

 .WriteLine("SELECT ...")
 .WriteLine("FROM ...   ")
 .WriteLine("WHERE ... ")
 .WriteLine("AND ((dateValue>= to_date('2014-01-01 00:00:00', 'yyyy-MM-dd HH24:mi:ss') ")
 .WriteLine("AND dateValue2<to_date('2015-01-01 00:00:00', 'yyyy-MM-dd HH24:mi:ss'))  ")
 .WriteLine("AND ROWNUM =1 ")

答案 1 :(得分:1)

我认为您可以简化此查询:

.WriteLine("SELECT ...")
.WriteLine("FROM ...   ")
.WriteLine("WHERE ... ")
.WriteLine("AND dateValue >= '2014-01-01' ")
.WriteLine("AND dateValue2 < '2015-01-01' ")
.WriteLine("AND ROWNUM =1 ")