Jdbc ORA-01858:在需要数字的位置找到非数字字符
我是oracle初学者,需要有关以下查询的帮助:Jdbc ORA-01858:在需要数字的位置找到非数字字符,jdbc,Jdbc,我是oracle初学者,需要有关以下查询的帮助: select admin_id, to_date(date_created, 'DD-MM-YYYY'), name, mobile, email, (select status from status where status.status_id = admin.status_id) from admin; 这是我的桌子: SQL> desc admin Name Null? Type
select admin_id, to_date(date_created, 'DD-MM-YYYY'), name, mobile, email, (select status from status where status.status_id = admin.status_id) from admin;
这是我的桌子:
SQL> desc admin
Name Null? Type
----------------------------------------- -------- ----------------------------
ADMIN_ID NOT NULL NUMBER(5)
STATUS_ID NOT NULL NUMBER(5)
DATE_CREATED TIMESTAMP(6)
STATUS_DATE DATE
NAME VARCHAR2(45)
MOBILE VARCHAR2(20)
EMAIL VARCHAR2(110)
SQL> desc status
Name Null? Type
----------------------------------------- -------- ----------------------------
STATUS_ID NOT NULL NUMBER(5)
STATUS VARCHAR2(36)
主要问题是我想根据admin.status\u id获取status.status。可以将日期作为charto\u char(创建日期,'DD/MM/YYYY')
admin\u id
和status\u id
列中的值。确保它们是正确的数据类型
select ad.admin_id, to_date(ad.date_created, 'DD-MM-YYYY'),
ad.name, ad.mobile, ad.email,st.status
from admin ad,status st
where ad.admin_id=st.status_id;
到日期(创建日期,'DD-MM-YYYY')
没有什么意义
是一个date\u created
,具有6位亚秒精度的十进制数字时间戳
接受一个字符串。因此Oracle必须首先使用会话的to_date
nls\u timestamp\u格式将时间戳转换为字符串。这是发送到日期的字符串
然后尝试使用“DD-MM-YYYY”格式掩码将该字符串转换回日期(该日期将始终具有时间分量)。除非您的到日期
nls\u timestamp\u格式设置为该格式,否则转换将失败,并可能抛出您报告的错误
date\u created
如果您确实希望Oracle执行数据类型转换,并将日期的时间部分设置为午夜,则可以使用trunc
和cast
。这避免了隐式数据类型转换,并消除了对会话的nls\u timestamp\u格式的依赖
trunc( cast( date_created as date ) )
谢谢,但这不是我想要的。此查询将比较两个表状态\u id,而我希望显示状态表中的管理记录+管理(外键)状态\u idstatus
。请检查两个表的结构。我在问题中列出了主要问题,主要问题不是可以用to_char(创建日期,'dd/mm/yyyy')解决的问题。
我的主要问题是根据一个表从另一个表获取状态id记录table@user230-我不太明白。你的意思是,除了你指出的特定错误之外,你发布的查询存在问题吗?如果是,有什么问题?还有其他错误吗?你没有得到你期望的结果吗?请检查我在问题中提到的主要问题好的。那么“主要问题”与你在主题中提出的错误无关?查询中的最后一列似乎是一个子查询,它将为您提供“status.status基于admin.status\u id”。通常,您会为此编写一个联接,但您编写的子查询似乎有效。你有错误吗?如果是,错误是什么?你没有得到你期望的结果吗?如果是这样,请发布一些示例数据以及该示例数据的预期输出。@JustinCave衷心感谢。你是对的,我对问题的标题和最初的问题有误解。固定的。