2

2 つの CSV 文字列を比較するための関数が 1 つあります ストアド プロシージャでこの関数を使用したいのですが、現在は機能しています ...関数の使用方法が間違っていると思います S_P を変更してください

ALTER PROC [dbo].[bb_AcquireInvtBanksSeekMatch] 
      @acq_targetCountry25 varchar(1500),
      @acq_bizsect25 varchar(1500),
      @acq_stageofCompany varchar(50),
      @acq_invstmntsize25 varchar(1500)  
AS 
    SET NOCOUNT ON 
    SET XACT_ABORT ON  

    BEGIN TRAN


    SELECT [bb_investorbanks_seek].[seek_id], [bb_investorbanks_seek].[user_id],    [bb_investorbanks_seek].[seek_actualRole], 
    [bb_investorbanks_seek].[seek_firmBased5],[bb_investorbanks_seek].    [seek_sectorOperate5],    [bb_investorbanks_seek].[seek_stageCompany], 
    [bb_investorbanks_seek].[seek_lookingToRaise25] 

    FROM   [dbo].[bb_investorbanks_seek] ,[dbo].[bb_user]       


    WHERE 
    (dbo.CompareCSV([bb_investorbanks_seek].[seek_firmBased5] , @acq_targetCountry25)=1 OR 
        dbo.CompareCSV([bb_investorbanks_seek].[seek_sectorOperate5] , @acq_bizsect25)=1 OR
    dbo.CompareCSV([bb_investorbanks_seek].[seek_stageCompany] , @acq_stageofCompany) =1 OR     
    dbo.CompareCSV([bb_investorbanks_seek].[seek_lookingToRaise25] , @acq_invstmntsize25)=1 AND 
([bb_investorbanks_seek].[user_id] = [bb_user].[user_id]) AND ([bb_investorbanks_seek].[user_id] <> 0) 

    COMMIT
4

2 に答える 2

3

SQL Server で関数を呼び出すときは、SELECT として実行する必要があります

SELECT [ColumnNameToSelectFromFunction] FROM [Function](Parameters for function all seperated by a ,)
于 2013-07-16T12:06:07.597 に答える
2

これを試してみてください -

ALTER PROC [dbo].[bb_AcquireInvtBanksSeekMatch]

     @acq_targetCountry25 VARCHAR(1500),
     @acq_bizsect25 VARCHAR(1500),
     @acq_stageofCompany VARCHAR(50),
     @acq_invstmntsize25 VARCHAR(1500)

AS BEGIN

     SET NOCOUNT ON
     SET XACT_ABORT ON

     SELECT
           s.[seek_id]
         , s.[user_id]
         , s.[seek_actualRole]
         , s.[seek_firmBased5]
         , s.[seek_sectorOperate5]
         , s.[seek_stageCompany]
         , s.[seek_lookingToRaise25]
     FROM dbo.bb_investorbanks_seek s
     JOIN dbo.bb_user u ON s.[user_id] = u.[user_id]
     WHERE (
                  dbo.CompareCSV(s.[seek_firmBased5] , @acq_targetCountry25) = 1 
               OR dbo.CompareCSV(s.[seek_sectorOperate5] , @acq_bizsect25) = 1 
               OR dbo.CompareCSV(s.[seek_stageCompany] , @acq_stageofCompany) = 1 
               OR dbo.CompareCSV(s.[seek_lookingToRaise25] , @acq_invstmntsize25) = 1 
          )
          AND s.[user_id] <> 0 

END
于 2013-07-16T12:21:55.657 に答える