KNOWN ISSUE: Invalid length parameter passed to the RIGHT function
search cancel

KNOWN ISSUE: Invalid length parameter passed to the RIGHT function

book

Article ID: 162594

calendar_today

Updated On:

Products

IT Analytics

Issue/Introduction

When attempting to process DLP cubes, the dimension Network Incident - Protocol throws an error, preventing processing from completing successfully. The error message is:

Error: OLE DB error: OLE DB or ODBC error: Invalid length parameter passed to the RIGHT function.; 42000. Errors in the OLAP storage engine: An error occurred while the 'Network Incident - Protocol' attribute of 'DLP Network Incident Protocol' dimension from the 'ITAnalytics' database was being processed.

Cause

The SQL view that is used to pull the Network Incident - Protocol dimension was designed to expect that all protocol names pulled from the DLP database would contain either a colon (:) or a period (.). If a protocol name doesn't contain either of these characters, processing fails.

Resolution

IT Analytics (ITA) has reached End of Life (EOL) status and will not be developed further. In order to address this error, upgrade to the last version of ITA (2.91) or follow this procedure to update the view vITAnalytics_DLP_ProtocolDim in the ITAnalytics relational database:

  1. Open SQL Server Management Studio (SSMS)
  2. Connect to the Database Engine hosting the IT Analytics relational database
  3. In Object Explorer, navigate to Databases > ITAnalytics
  4. Right click on Views and select Filter > Filter Settings
    The Filter Settings window opens
  5. Set the Name filter value as: vITAnalytics_DLP_ProtocolDim
  6. Click the OK button
  7. Right-click the view vITAnalytics_DLP_ProtocolDim and select Script View As > Alter to > New Query Window
  8. Find the section of script below
    CASE WHEN CHARINDEX('.', PROTOCOLNAME) > 0 THEN
    right(PROTOCOLNAME,charindex('.',reverse(PROTOCOLNAME))-1)
    ELSE right(PROTOCOLNAME,charindex(':',reverse(PROTOCOLNAME))-1)
  9. Replace this portion of code with
    CASE WHEN CHARINDEX('.', PROTOCOLNAME) > 0 THEN
    right(PROTOCOLNAME,charindex('.',reverse(PROTOCOLNAME))-1)
    WHEN CHARINDEX(':', PROTOCOLNAME) > 0 THEN right(PROTOCOLNAME,charindex(':',reverse(PROTOCOLNAME))-1)
    ELSE PROTOCOLNAME
  10. Execute the ALTER statement by pressing the F5 key, clicking the Execute button in the SQL Editor toolbar, or selecting Execute from the Query menu