pl/sql 语句 关于日期的输入格式

coles 2008-10-10 09:15:42
在oracle里创建一个表 其中的一个项是DOB(date of birth),当时建的时候写的类型是 DOB date,后来在jdeveloper里创建了一个sql包写到数据库里 然后发布web service
在定义这个表的包的时候创建插入数据的方法时,定义如下:
FUNCTION insert_tblcustomers(customerid IN NUMBER,DOB IN DATE) RETURN VARCHAR2 IS
begin
EXECUTE IMMEDIATE 'insert into tblcustomers values ('''||customerid||''',to_date('''||DOB||''',''yyyymmdd''),''' )' ;
EXECUTE IMMEDIATE 'commit';
return '1';
end;

但是在在发布完web service后在主页里调用这个insert方法时 却出现了日期不对的情况
不知道是因为DOB的设置类型的问题还是返回类型的问题?
各位tz 先谢谢了
...全文
166 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fdfdfzz 2008-11-05
  • 打赏
  • 举报
回复
OK
codearts 2008-10-11
  • 打赏
  • 举报
回复
CREATE OR REPLACE FUNCTION insert_tblcustomers(customerid IN NUMBER,DOB IN DATE)
RETURN VARCHAR2
AS
begin
EXECUTE IMMEDIATE 'insert into tblcustomers values ('''' || to_char(:customerid) || '''', :dob)'
using customerid, dob ;
--EXECUTE IMMEDIATE 'commit';
return '1';
end;
codearts 2008-10-11
  • 打赏
  • 举报
回复
用判定变量

CREATE OR REPLACE FUNCTION insert_tblcustomers(customerid IN NUMBER,DOB IN DATE) 
RETURN VARCHAR2
AS
begin
EXECUTE IMMEDIATE 'insert into tblcustomers values (to_char(:customerid)', :dob)'
using customerid, dob ;
EXECUTE IMMEDIATE 'commit';
return '1';
end;
sjq521521 2008-10-11
  • 打赏
  • 举报
回复
1楼正解
coles 2008-10-11
  • 打赏
  • 举报
回复
所以在funcation里的DOB的类型写 in date是没有问题的?
不过还是出错
是不是我输入的方式有问题
我输入的是yyyymmdd eg.19990909
coles 2008-10-10
  • 打赏
  • 举报
回复
多谢两位 正准备试 可是出现了新的问题 oc4j启动的问题
有一天没开jdeveloper了 今天开之前启动的时候并不是马上就出现initialized的字样 但也没在意 但是在测试connection的时候发现连不了了 于是我把user换成了oc4jadmin(之前是admin)密码照旧 就可以连接
可是我之前的所有的wervice都发布在admin的connection上 这是怎么回事呢 为什么user 会自动变成oc4jadmin呢?
hebo2005 2008-10-10
  • 打赏
  • 举报
回复
你这里要先to_char一下
EXECUTE IMMEDIATE 'insert into tblcustomers values ('''||customerid||''',to_date('''||to_char(DOB,'yyyymmdd')||''',''yyyymmdd''),'''    )'  ; 
BlueskyWide 2008-10-10
  • 打赏
  • 举报
回复
try it:

insert into tblcustomers values (customerid,to_date(to_char(dob,'yyyy-mm-dd'));

[Quote=引用楼主 coles 的帖子:]
在oracle里创建一个表 其中的一个项是DOB(date of birth),当时建的时候写的类型是 DOB date,后来在jdeveloper里创建了一个sql包写到数据库里 然后发布web service
在定义这个表的包的时候创建插入数据的方法时,定义如下:
FUNCTION insert_tblcustomers(customerid IN NUMBER,DOB IN DATE) RETURN VARCHAR2 IS
begin
EXECUTE IMMEDIATE 'insert into tblcustomers values ('''||customerid||''',to_date('''…
[/Quote]

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧