Liquibase Stored Procedure - database

I am trying to call Liquibase Stored Procedure Through Tag
it gives me error as sql code
DB2 SQL Error: SQLCODE=-440, SQLSTATE=42884
I Am Tring to call as follows : :
<sql> CALL TestProcedure('abc','xyz') </sql>
it executed well from outside command line Client and not using liquibase
i also tried calling using schema name no luck Open to suggestions

SQL440N is routine not found. The error message should give the text of the rountine name. Does it match what you have in your database. Is is a case sensitive problem? (i.e. try in upper case?)
SQL0440N No authorized routine named "<routine-name>" of type
"<routine-type>" having compatible arguments was found.

Related

Can't use a binding parameter in a Snowflake SQL API statement that utilizes a script block

I am using the Snowflake SQL API to execute a script block with a single binding parameter.
Currently, the API requests uses two statements: The first sets a session variable and the second executes the script block referencing the session variable.
Using the session variable seems hacky, but when I send only one statement and try to use the binding parameter in the body I get the following error:
SQL compilation error: error line 2 at position 11\n Unexpected unnamed bind in SQL stored procedure.
Below is a simplified example of what works:
set code = ?; -- using a session variable was the only way to get a binding parameter.
begin
return $code;
end;
This is a simplified example of what I would like to work, but results in the error:
begin
return ?;
end;
I am 100% positive my request body is formatted correctly. I have tried mixing up named parameters with anonymous ones and using execute immediate. There's part of me that thinks execute immediate is promising because of the using parameter, but I couldn't figure out the syntax.

TYPO3 Exception: Could not determine pid

While trying to add a new fe_users record, on save I get
(1/1) Exception
Could not determine pid
It's TYPO3 9.5.20.
We already have a lot of entries in multiple folders which could be edited without problem.
But those records were imported (by EXT:ig_ldap_sso_auth or with mysql terminal)
These records are used only to be shown (no login is used).
What configuration is missing or could be wrong?
EDIT:
as #biesior mentioned: the error message does not come from the core but from an extension. It's EXT:solrfal (in version 7.0.0)
The real error was not in EXT:solrfal. this extension just hides the error with a misleading message.
The real reason was a wrong database configuration for the table fe_users. Although it is not possible in SQL to have a default value for fields of type text (and any given value is ignored) TYPO3 expects a default value if it is configured. As this is not returned from the database it assumes an error. And EXT:solrfal hooks into the error handling and assumes a wrong error.
Hi just got the same problem.
The error message was called in solrfal ConsistencyAspect::getRecordPageId() which was called by ConsistencyAspect::getDetectorsForSiteExclusiveRecord(). I remember that I have added various tablenames to siteExclusiveRecordTables of Extension Settings of solrfal. And yes, there was one table without pid. After removing this table from list, deleting files works again.

SSIS Execute SQL Task - Input String in wrong format

I have an Execute SQL Task which tries to execute a stored procedure, like this:
EXEC usp_stored_proc ?, ?, ? OUTPUT, ? OUTPUT;
I have 4 variables mapped to parameters. Ignoring the output parameters, these are both strings mapped to NVARCHAR params (as expected by the stored procedure).
When I run the package, an error tells me that execution failed with the message input string is not in the correct format. However, when I use a breakpoint to find the runtime values of the input parameters (or at least the variables mapped to them) and execute the same line of SQL in SSMS using the runtime values, it works fine.
Can anyone help? I'm at the end of my tether with this. I can't even find out the exact parameter causing the issue although it's probably both as the values follow the same format.
More details:
Connection type: OLE DB
Input Variable: String = schema.table
Mapped Param: NVARCHAR, ParamName = 0, ParamSize = -1
UPDATE
Solved the issue by making a new execute sql component that calls a stripped down procedure. I then slowly added lines of code to the procedure and additional parameters until arriving at the same component I started with and now it works. Comparing the original and rebuilt tasks, I see absolutely no differences (same with the procedure), so I don't know why this issue was occuring.
Try changing the parameter size (ParamSize) to match the parameter size within the stored procedure; if nvarchar(50) then set it to 50.
Solved the issue by making a new execute sql component that calls a stripped down procedure. I then slowly added lines of code to the procedure and additional parameters until arriving at the same component I started with and now it works. Comparing the original and rebuilt tasks, I see absolutely no differences (same with the procedure), so I don't know why this issue was occurring.

Excel Source failing the pre-execute phase and returned error code 0xC0207013, expecting parameters

SELECT UCase(LTRIM(RTRIM(c.F2))) AS Name,c.F2 AS NameProperCase,c.F3 As Initials, c.F4 As CountryCode
FROM `Country$` c
I have the above query in an SSIS Excel Source as its SQL command. In the Excel Source Editor, i can successfully click preview and see the sample data returned by the query from the Excel file.
I have configured my Excel Connection Manager that the First row DOES NOT have column headers.
When i try to execute my package, it fails at this Excel source and the errors below are logged to my text Log file.
The SQL command requires 3 parameters, but the parameter mapping only has 0 parameters.
The SQL command requires 3 parameters, but the parameter mapping only
has 0 parameters.
The SQL command requires 3 parameters, but the parameter mapping only
has 0 parameters.
"Excel Source 2" (2303) failed the pre-execute phase and returned
error code 0xC0207013.
"Excel Source 2" (2303) failed the pre-execute phase and returned
error code 0xC0207013.
"Excel Source 2" (2303) failed the pre-execute phase and returned
error code 0xC0207013.
If i reconfigure the Excel Connection Manager that the First row HAS column names, and then replace the Excel source query with the one below, the package runs fine with out errors
SELECT UCase(LTRIM(RTRIM(c.Name))) AS Name,c.Name AS NameProperCase,c.Initials, c.CountryCode
FROM `Country$` c
I don't have any parameters in the query but i am getting "The SQL command requires 3 parameters, but the parameter mapping only has 0 parameters." in the log file.
The only difference between the failing and succeeding Excel sources is the setting that First row has column names (Success with out error), AND First row does NOT have column names (Fails with errors posted above)
I haved faced the same issue, First i ran package by changing excel connection manager properties-> FirstRowHasColumn to False. I could preview the data, but only at run time, this error came.
After few googling no answer. Then found out myself.
Reason was i did not change excel connection string in config file or in properites. After changing connection string HDR to NO, it worked fine.
HDR=NO
Right click excel connection manager-> properties-> connection string locate the value HDR.
if HDR=YES then change it to NO. Ensure the same thing is done in config file as well if you have one. Cheers!

Spring: Got error when initializing a database instance using Spring XML

Here is my XML snippet:
<jdbc:initialize-database data-source="dataSource">
<jdbc:script location="/WEB-INF/sqlscripts/age.sql" encoding="UTF-8" />
</jdbc:initialize-database>
When starting my Spring web application via Jetty, I got the following error:
Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.jdbc.datasource.init.DataSourceInitializer#0': Invocation of init method failed; nested exception is org.springframework.dao.DataAccessResourceFailureException: Failed to execute database script; nested exception is org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement at line 1 of resource ServletContext resource [/WEB-INF/sqlscripts/age.sql]: I?N?S?E?R?T? ?A?g?e?G?r?o?u?p? ?(?d?e?f?a?u?l?t?O?p?t?i?o?n?,? ?d?e?s?c?r?i?p?t?i?o?n?,? ?d?i?s?p?l?a?y?S?o?r?t?,? ?n?a?m?e?,? ?c?o?d?e?,? ?l?o?c?a?l?e?)? ?V?A?L?U?E?S? ?(?1?,? ?N?U?L?L?,? ?1?,? ?N?'?1?6?-?2?0?'?,? ?N?'?1?6?-?2?0?'?,? ?N?'?e?n?_?U?S?'?)?
.....
com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near 'S'.
....
I don't know whether these question marks in the error message come from. The SQL statement in the age.sql has one line:
INSERT age(defaultOption, description, displaySort, name, code, locale) VALUES (1, NULL, 1, N'16-20', N'16-20', N'en_US');
I was able to run the same SQL statement successfully within MS SQL server manually. My SQL statement can have foreign characters.
I am using Spring 3.2.
What went wrong?
Thanks!
The file (example age.sql) having SQL inserts has encoding UTF-8 because it has characters of different languages. I changed it to UTF-8 No BOM. Then it worked.
Hope this helps someone else.

Resources