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

存储过程声明 赋值 问题存储过程 BEGIN DECLARE @test VARCHAR(1000)SET @test SELECTSUBSTRING(A,4,6)

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

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,应该是楼主发错版块了。