-
Notifications
You must be signed in to change notification settings - Fork 433
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Procedure name is appended with delimitter ;1 #448
Comments
Hi @vishal98,
You are probably wondering why your application returns As a workaround, you can safely add the following lines to your application:
Please also note that, numbered procedures are deprecated starting from SQL Server 2017 (See this page). I will keep the issue open for a few more days in case you have questions. |
Closing due to inactivity. @vishal98, please feel free to reopen if you have more questions. |
@ulvii @ajlam @cheenamalhotra - please reopen this issue. This issue is not about how "sp_procedures" works, but how the JDBC "DatabaseMetaData.getProcedures" works. My suggestion is that you provide the procedure name without numbering in the |
Bump, this should really be reopened and addressed. |
Please reconsider, reopen, and address. |
We'll take another look at this. |
@Jeffery-Wasty The JDBC |
I've been thinking about this one. If we change the driver to return function names without the numbered procedure identifier, we end support for numbered procedures in the driver. This would be a breaking driver change and would only happen on a major version bump. Even moving the numbered identifier to the NOTE: Deprecated by SQL Server does NOT mean unsupported. As long as you are using JDBC DatabaseMetadata APIs to gather information about database objects, numbered procedures doesn't cause any issues. But as soon as you start running your own database queries to gather that information, you must ensure you support database-specific features like numbered procedures in your queries or you can run into issues like this one. This appears to be the case in schemacrawler/SchemaCrawler#470. A custom query to retrieve additional database metadata based on the info from DatabaseMetaData.getProcedures doesn't support numbered procedures. So the numbered identifier name doesn't match. This is not a driver error. That said, the driver could expose an option, like Since this issue will resolve itself once SQL Server actually drops support for numbered procedures, that feels like a lot of work for a relatively low priority issue. |
Not if you include the numbered procedure identifier in
What is the resistance to a major version bump? It seems that this would be a relatively easy code change to make, and would align to what is returned in |
Ah - I get it - the next major version is 13! 😉 |
Bumping the major version implies we are introducing a breaking change. We don't make breaking changes lightly.
You seem to be saying you just want us to ignore users who are using numbered procedures and break them. That's not going to happen. As I said, this isn't as simple as it seems. We don't want to break users who use numbered procedures. INFORMATION_SCHEMA doesn't expose numbered procedures correctly. We would have to write new metadata queries for any APIs affected in order to "run without support for numbered procedures". We would maintain a logic path that continued to support numbered procedures. This implies additional test paths and test scenarios we would need to cover. There may be other things we don't know about that could be affected by moving to a different metadata query across all supported database types. Like I said, it's not such a simple change and the new code would become pointless when SQL Server actually removes support for numbered procedures since the existing queries (presumably) would stop returning |
Driver version or jar name
mssql-jdbc-6.2.1.jre8
SQL Server version
Azure Sql 13
Client operating system
windows
Java/JVM version
Example: java version "1.8.0_65
Table schema
Problem description
Procedure schema name contain delimitter like ;1 with procedure name
This is giving issue while fetching param using procedure name.
Following error is coming with jar
org.springframework.dao.InvalidDataAccessApiUsageException: Unable to determine the correct call signature - no procedure/function/signature for 'uspGetAllVideosByUsername;1'
Expected behavior and actual behavior
We should be able to fetch procedurename without any delimited
Repro code
The text was updated successfully, but these errors were encountered: