【发布时间】:2018-08-30 08:51:00
【问题描述】:
我的问题是:
create function jbmdate (p_date in varchar2)
return varchar2
as
begin
return to_char(to_date(p_date,'YYYYMMDD'),'DD.MM.YYYY');
end;
如您所见,这将返回一个具有默认值的 varchar:4000 字节/字符。
但问题是它会在 GUI 中使用,所以 4000 是不走运的大。
那么我怎么可能将这个 varchar2 的返回值更改为 (10 char)?
应该是这样的
但我在 gui 中使用时看起来像这样。
所以真正的问题不是 gui 本身,而是 sql ......这里在 squirrle sql 中显示:
那么我怎样才能改变函数返回的精度。
【问题讨论】:
-
该函数永远不会返回超过 8 个字符,而不是 4000 个字符。那么您的问题到底是什么?
-
所以这个函数将在一个 gui 中使用,它会显示一个表: DATE-TIME:但是这个表的值是 varchar 2 默认值。所以有类似 20.20.2020 的日期,但显示为 20.20.2020 ...................................... .................................. (......作为示例排除在外)
-
我用一张图片编辑了我的问题,以便更好地理解我的意思。
-
varchar 只存储与字符串长度一样多的字符,而不是字符串的长度。 Varchar2(4000)表示可以存储4000个字符,但是如果只存储8个字符的字符串,就只有8个而不是4000个。或者你的列是char类型?
-
如果您的输出由于某种原因是
20.20.2020.........................(顺便说一句,在您上传的图像中不可见),那么问题出在其他地方而不是函数中。正如@hotfix 提到的,您的函数仅返回 10 个字符。