【发布时间】:2015-09-09 23:56:00
【问题描述】:
<select id="foo" parameberClass="fooClass">
{call
declare
dsc varchar(512);
begin
select
count(*)
into dsc
from foo
where birthday = TO_DATE(#birthday#, 'YYYY-MM-DD');
end
}
</select>
生日看起来像“1999.11.11”,我无法更改它,是的,生日字段是 varchar 而不是日期,我也无法更改它..
由于#birthday 字符串中的. 而出现错误。
ORA-06550: line 1, column 140:
PL/SQL: ORA-00911: invalid character
ORA-06550: line 1, column 48:
PL/SQL: SQL Statement ignored
我尝试了很多不同的方法来防止错误,但找不到解决方案。
【问题讨论】:
-
为什么不把
birthday列转换成sqlDATE做你的操作呢? -
因为这不是一个选项。我正在向已经部署的其他人的代码添加一个功能。
-
你从来没有说过你的约束。您希望我们如何知道您的选择是什么?说真的,你在这个网站上得到了免费帮助,然后你开始变得粗鲁......希望你能找到答案。
-
@Luiggi:?我在 OP 中说明了约束..
-
你刚才说不能改变数据和字段的类型。但我想说的是,使用
REPLACE将那些.替换为-,然后使用TO_DATE将birthday列转换为sqlDATE。我从来没有说过改变列的类型,我说过 convert,
标签: sql oracle date-comparison