日期:2014-05-17  浏览次数:20696 次

存储过程 声明 赋值 问题
存储过程 

BEGIN 
DECLARE @test VARCHAR(1000)

SET @test = SELECT  SUBSTRING(A,4,6) FROM T WHERE A='123123'

PRINT @test

END


sql 语句为 SELECT top 1 SUBSTRING(A,4,6) FROM T WHERE A like '123123%'

都是报incorrect syntax near the keyword 'select'这个错,麻烦大家给看一下。
包括int 类型的赋值。
set @aa = 2
这样不对吗?
存储过程

------解决方案--------------------
你确定你问的是 oracle??!!!

oracle没有top和substring的。。。
------解决方案--------------------
第一
oracle 没有top  
sql里面有

第2
substring也不对 !
只是substr(字符,从第几位截取,截取几位)
------解决方案--------------------
你放到sql server 里面执行就不会报错了
------解决方案--------------------
oracle用where rownum=1
你这个语法不是oracle的
------解决方案--------------------
确实不是oracle的,是sqlserver的
------解决方案--------------------
引用:
存储过程 

BEGIN 
DECLARE @test VARCHAR(1000)

SET @test = SELECT  SUBSTRING(A,4,6) FROM T WHERE A='123123'

PRINT @test

END


sql 语句为 SELECT top 1 SUBSTRING(A,4,6) FROM T WHERE A like '123123%'

都是报incorrect syntax near the keyword 'select'这个错,麻烦大家给看一下。
包括int 类型的赋值。
set @aa = 2
这样不对吗?




这语法明显不是Oracle,应该是楼主发错版块了。