diff --git a/plugins/dbgate-plugin-mssql/src/backend/sql/functionParameters.js b/plugins/dbgate-plugin-mssql/src/backend/sql/functionParameters.js index 62f1f425d..2a255d939 100644 --- a/plugins/dbgate-plugin-mssql/src/backend/sql/functionParameters.js +++ b/plugins/dbgate-plugin-mssql/src/backend/sql/functionParameters.js @@ -10,9 +10,22 @@ SELECT p.name END AS parameterName, TYPE_NAME(p.user_type_id) AS dataType, - p.max_length AS charMaxLength, - p.precision AS precision, - p.scale AS scale, + CASE + WHEN TYPE_NAME(p.user_type_id) = 'nvarchar' THEN p.max_length / 2 + ELSE p.max_length + END AS charMaxLength, + CASE + WHEN p.is_output = 1 THEN 'OUT' + ELSE 'IN' + END AS parameterMode, + CASE + WHEN TYPE_NAME(p.user_type_id) IN ('numeric', 'decimal') THEN p.precision + ELSE NULL + END AS numericPrecision, + CASE + WHEN TYPE_NAME(p.user_type_id) IN ('numeric', 'decimal') THEN p.scale + ELSE NULL + END AS numericScale, CASE WHEN p.is_output = 1 THEN 'OUT' ELSE 'IN' diff --git a/plugins/dbgate-plugin-mssql/src/backend/sql/proceduresParameters.js b/plugins/dbgate-plugin-mssql/src/backend/sql/proceduresParameters.js index 1b9e9910f..ba11582bd 100644 --- a/plugins/dbgate-plugin-mssql/src/backend/sql/proceduresParameters.js +++ b/plugins/dbgate-plugin-mssql/src/backend/sql/proceduresParameters.js @@ -5,13 +5,24 @@ SELECT o.name as pureName, p.name AS parameterName, TYPE_NAME(p.user_type_id) AS dataType, - p.max_length AS charMaxLength, + CASE + WHEN TYPE_NAME(p.user_type_id) = 'nvarchar' THEN p.max_length / 2 + ELSE p.max_length + END AS charMaxLength, p.precision AS precision, p.scale AS scale, CASE WHEN p.is_output = 1 THEN 'OUT' ELSE 'IN' END AS parameterMode, + CASE + WHEN TYPE_NAME(p.user_type_id) IN ('numeric', 'decimal') THEN p.precision + ELSE NULL + END AS numericPrecision, + CASE + WHEN TYPE_NAME(p.user_type_id) IN ('numeric', 'decimal') THEN p.scale + ELSE NULL + END AS numericScale, p.parameter_id AS parameterIndex, s.name as schemaName FROM