下面是mssql语句SELECT @PageCurrent=@TopN1,
@sql=N'SELECT @n=@n-1,@s=CASE WHEN @n<'+@TopN
+N' THEN @s+N'',''+QUOTENAME(RTRIM(CAST('+@FieldKey
+N' as varchar(8000))),N'''''''') ELSE N'''' END FROM '+@TableName + N' with(nolock)'
+N' '+@Where
+N' '+@FieldOrder
SET ROWCOUNT @PageCurrent怎么转成oracle的啊,我转了一点,但是有问题啊,下面是我转的
a_sql := 'SELECT a_n:a_n-1,a_s:CASE WHEN a_n<'|| a_TopN ||' THEN a_s ,'|| QUOTENAME(RTRIM(CAST(' || v_FieldKey ||')),' ||''''''''') ELSE ||''''''END FROM ' || v_TableName || ' ' || v_Where || ' ' || v_FieldOrder ||' ;求解~~~

解决方案 »

  1.   

    SELECT @PageCurrent:=@TopN1,
            @sql:=N'SELECT @n=@n-1,@s=CASE WHEN @n<'@TopN
                ' THEN @s+N'',''+QUOTENAME(RTRIM(CAST('+@FieldKey
                +' as varchar(8000))),'''''''') ELSE '''' END FROM '||@TableName ||N' with(nolock)'
                ||N' '||@Where
                ||N' '||@FieldOrder
        SET ROWCOUNT @PageCurrent
      

  2.   


    这么转是错的额,as varchar(8000) 都还没转过来,在oracle里面参数能用@表示吗?我看都是v_表示的啊