2016-04-08 2 views
0

Возможно получить результат из подготовленного оператора от База данных ORACLE как и аналогичный пример ниже для SQL Server?SSRS - подготовленный запрос, выполненный с ORACLE

SQL SERVER: Я создал параметр с именем WHERE для использования "где" состоянии, например

FirstName = 'Peter' 

А вот запрос определяется в наборе:

declare @query nvarchar(max) 
    set @query= 'SELECT FirstName, LastName 
FROM [AdventureWorksDW2012].[dbo].[DimEmployee] WHERE ' + @WHERE 
    exec(@query) 

И это работает правильно!

Так что мой вопрос: возможно ли повторить его для базы данных ORACLE, я проверил что-то вроде этого ниже, но это не работает.

declare 
    sql_query varchar2(150); 
begin 
    sql_query := 'SELECT FirstName, LastName FROM DimEmployee WHERE '; 

    sql_query := sql_query || ' ' || @WHERE; 

    EXECUTE IMMEDIATE (sql_query); 
end; 
/

ответ

0

Нет проблем ... Просто используйте строку concatination:

declare 
    sql_query varchar2(150); 
    where varchar2(1000); 
begin 
    sql_query := 'SELECT FirstName, LastName FROM DimEmployee t WHERE '; 
    where := 't.FirstName like ''John Doe'''; 
    sql_query := sql_query || ' ' || where; 

    EXECUTE IMMEDIATE (sql_query); 
end; 
/
Смежные вопросы