Skip to content

CSharp的Oracle模板中,关于Query的Sql语法错误 #56

@gmij

Description

@gmij

当前的模板中, 是使用Top进行获取数据。
`
<Statement Id="Query" @queryStatementResultMap>

    SELECT
    <IsNotEmpty Prepend="Top" Property="Taken">
        (@(dbPrefix)Taken)
    </IsNotEmpty>

    T.* From @table.Name T
    <Include RefId="QueryParams" />

    <Switch Prepend="Order By" Property="OrderBy">
        <Default>
            T.@pkCol.Name Desc
        </Default>
    </Switch>

</Statement>

`

但是实际上, oracle不支持top的语法。建议调整如下:
`

<Statement Id="Query" @queryStatementResultMap>
    
    select * from (

        SELECT
        
        T.* From @table.Name T
        <Include RefId="QueryParams"/>
        <Switch Prepend="Order By" Property="OrderBy">
            <Default>
                T.@pkCol.Name Desc
            </Default>
        </Switch>
        
    ) 
    <IsNotEmpty Prepend="where" Property="Taken">
        ROWNUM  < (@(dbPrefix)Taken)
    </IsNotEmpty>
</Statement>

`

@Ahoo-Wang

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions