Joe*_*ech 6 sql oracle plsql casting
我有一些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;
/
Run Code Online (Sandbox Code Playgroud)
但是,我需要将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;
/
Run Code Online (Sandbox Code Playgroud)
Oracle SQL Developer 3.2.10.09中的错误消息是
错误(1,36):PLS-00103:遇到符号"("当期望下列之一:: =.),@%默认字符符号":="代替"("继续.
我应该怎么写的CAST
声明,以使其与合作NUMBER(5, 0)
,而不是SMALLINT
?
同样,这不是原始代码,但我正在寻找一种解决方案,它不会偏离第二个版本太多,最好也不是另一个函数调用.在VARCHAR2
返回类型也很重要.
您无法指定NUMBER
函数参数的精度和小数位数。只需这样声明即可:
CREATE OR REPLACE FUNCTION MyFunction2(LINE_ID NUMBER)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
88905 次 |
最近记录: |