如何在Oracle中将NUMBER转换为VARCHAR2?

 花懋1274238844 发布于 2023-02-10 09:56

我有一些P-SQL语法的问题.我已将代码示例减少到最低限度.

以下作品:

CREATE OR REPLACE FUNCTION MyFunction(LINE_ID SMALLINT)
RETURN VARCHAR2 IS
    tmp VARCHAR2(4000);
BEGIN
    tmp := CAST(LINE_ID AS VARCHAR2);
    RETURN(tmp);
END MyFunction;
/

但是,我需要将LINE_ID参数更改为NUMBER(5,0),之后以下操作无效:

CREATE OR REPLACE FUNCTION MyFunction2(LINE_ID NUMBER(5, 0))
RETURN VARCHAR2 IS
    tmp VARCHAR2(4000);
BEGIN
    tmp := CAST(LINE_ID AS VARCHAR2);
    RETURN(tmp);
END MyFunction2;
/

Oracle SQL Developer 3.2.10.09中的错误消息是

错误(1,36):PLS-00103:遇到符号"("当期望下列之一:: =.),@%默认字符符号":="代替"("继续.

我应该怎么写的CAST声明,以使其与合作NUMBER(5, 0),而不是SMALLINT

同样,这不是原始代码,但我正在寻找一种解决方案,它不会偏离第二个版本太多,最好也不是另一个函数调用.在VARCHAR2返回类型也很重要.

1 个回答
  • 您正在寻找的功能是TO_CHAR:

    tmp := TO_CHAR(LINE_ID);
    

    2023-02-10 10:01 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有