Information Link based on Sybase stored procedure fails to execute with “Stored procedure ‘<Proc_Name>’ not found" error

Information Link based on Sybase stored procedure fails to execute with “Stored procedure ‘<Proc_Name>’ not found" error

book

Article ID: KB0082797

calendar_today

Updated On:

Products Versions
Spotfire Server All Versions

Description

When executing an Information Link based on a stored procedure from a Sybase database, the Information Link fails to execute correctly with the following error:
Failed to execute query: Stored procedure '<myProcName>' not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).
 (HRESULT: 80131500)

Issue/Introduction

Information Link based on Sybase stored procedure fails to execute with “Stored procedure ‘’ not found" error

Resolution

This error occurs when you attempt to execute a stored procedure that does not exist. If the procedure actually does exist, that is, it appears when sp_help is run with no parameters, the error 2812 can occur if the procedure name was not fully qualified. Additionally, this error can occur if the account used in the Sybase data source in the Information Designer to create Sybase Data source does not have proper permissions to execute stored procedure.
 
To resolve:
  • Ensure the account used in the Sybase data source in the Information Designer has all necessary permissions to execute stored procedure
  • Ensure the given Stored procedure does exist on Sybase database
To verify the permissions, you can use a third party JDBC tool, like DBVisulizer, to execute the procedure. Additionally, there various ways to verify the permissions in the link provided in the references.

If you do not know who owns a procedure, use sp_help to display the owner. Run this procedure without any parameters to display objects owned by other users. See Reference Manual: Procedures for instructions.
 
Alternatively, use the following query to determine who owns the stored procedure you are attempting to execute:
1> select name,owner=user_name(uid)
2> from sysobjects
3> where name = "<procedure_name>"
4> go

If the procedure does not appear in the query’s output, the procedure is either in a different database or does not exist. If you do not own the procedure, qualify the procedure name with the owner name:
1> execute <owner_name>.<procedure_name>
2> go

For procedures used by many database users, the database owner should create the procedure, which allows any user to find the procedure without specifying an owner name. If the procedure is not in the database where it is executed, fully qualify the procedure name with the database name:
1> exec <database_name>.<user_name>.<procedure_name>
2> go


The owner name is not needed if you or the database owner own the procedure:
1> exec <database_name>.<procedure_name>
2> go

Execute permission must be provided so other users can execute this procedure, but no permissions are required to see the text of the procedure.
 

Additional Information

Sybase Error 2812