How can I insert data in Postgres using Parameterized Queries similar to MSSQL insertion?

CALL public.sm_insert_and_update_survey_question_and_answers_sp(
@QuestionID,
@Customer
);

This way not working for me

hi @Yathuraj

Use Run Query activity with CommandType = Text:

CALL public.sm_insert_and_update_survey_question_and_answers_sp($1, $2)

Parameters (in order):

  • Parameter1: QuestionID_value
  • Parameter2: Customer_value

Why @ parameters don’t work: Postgres uses positional $1, $2 syntax, not MSSQL’s @named parameters.​

Hi @Yathuraj

In PostgreSQL, you don’t use @ for parameters. You can call your procedure like this:

Positional parameters:

CALL public.sm_insert_and_update_survey_question_and_answers_sp(123, ‘CustomerName’);

Named parameters:

CALL public.sm_insert_and_update_survey_question_and_answers_sp(
“QuestionID” => 123,
“Customer” => ‘CustomerName’
);

In UiPath with Npgsql:

Dim cmd As New NpgsqlCommand(“CALL public.sm_insert_and_update_survey_question_and_answers_sp(:QuestionID, :Customer)”, conn)
cmd.Parameters.AddWithValue(“QuestionID”, 123)
cmd.Parameters.AddWithValue(“Customer”, “CustomerName”)
cmd.ExecuteNonQuery()

Use “:” for parameters and bind values with AddWithValue.

Hi @Yathuraj

PostgreSQL does not support @param syntax like MSSQL.

Use positional parameters instead:

CALL public.sm_insert_and_update_survey_question_and_answers_sp($1, $2);

And pass values in order from your application (or tool).

Key point:

  • MSSQL → @ParamName
  • PostgreSQL → $1, $2, $3 ...

That’s why your query is not working.

Kindly refer the docs

Regards,
Gokul