【发布时间】:2022-11-30 21:56:40
【问题描述】:
我正在尝试在 PLSQL 中获得以下输出-
- 输入“hjbhy”,结果“y-Text”表示输入值的最后一个字母
- 输入“hvu3”,结果“3-ODD”表示最后一个字母+奇数/偶数。
我的代码-
ALTER FUNCTION [dbo].[fnLast_Char] ( @pchar NVARCHAR(100) ) RETURNS NVARCHAR(100) AS BEGIN DECLARE @mchar NVARCHAR(10) DECLARE @nchar NVARCHAR(10) @mchar = substr(@pchar, Length(@pchar),1) IF Instr('1,3,5,7,9', @mchar) >0 SET @nchar = '-ODD' IF Instr('2,4,6,8,0', @mchar) >0 SET @nchar = '-EVEN' ELSE @nchar = '-TEXT' END RETURN UPPER (@mchar) || (@nchar) END
错误-“Instr”不是内置函数 必须声明标量变量@nchar
我用谷歌搜索 Instr,我不明白,如果我们输入“sjfhu5”,则输出“5-ODD”。 instr我们可以检查奇数,偶数。但我无法在 func 中使用它。你能帮忙吗我用谷歌搜索了一切并观看了 youtube 视频,没有帮助
【问题讨论】:
-
好吧,那不是 Oracle 也不是它的 PL/SQL。你使用哪个数据库?如果是 Oracle,则使用其语法。
-
我在 plsql 中做。和 Instr 我们可以在 select 语句中使用。但是我们应该在 func 中使用吗?
-
不,Littlefoot 指的是您的完整代码在 Oracle PL/SQL 中无效。从那些括号开始,内联 DECLARE,缺少分号......看来您根本没有使用 Oracle。也许是 SQL 服务器?请检查您使用的是什么 DBMS。请发布您收到的完整错误消息。
-
You asked this yesterday,得到了你接受的答案。那是给甲骨文的。看起来您正在尝试将其转换为...也许是 T-SQL?