我正在研究使用动态查询根据用户输入执行选择语句的应用程序,在与 DBA 讨论安全性之后,他们希望我将动态选择语句转换为存储过程。
我已经使用 MSSQL 构建了动态 sql,但我不知道如何将其转换为 Oracle SQL。
CREATE PROCEDURE GetCustomer
@FirstN nvarchar(20) = NULL,
@LastN nvarchar(20) = NULL,
@CUserName nvarchar(10) = NULL,
@CID nvarchar(15) = NULL as
DECLARE @sql nvarchar(4000),
SELECT @sql = 'C_FirstName, C_LastName, C_UserName, C_UserID ' +
'FROM CUSTOMER ' +
'WHERE 1=1 ' +
IF @FirstN IS NOT NULL
SELECT @sql = @sql + ' AND C_FirstName like @FirstN '
IF @LastN IS NOT NULL
SELECT @sql = @sql + ' AND C_LastName like @LastN …
Run Code Online (Sandbox Code Playgroud)