| From: | Samed YILDIRIM <samed(at)reddoc(dot)net> | 
|---|---|
| To: | kunwar singh <krishsingh(dot)111(at)gmail(dot)com> | 
| Cc: | pgsql-sql(at)lists(dot)postgresql(dot)org | 
| Subject: | Re: How to pass arguments in postgres to sql scripts. | 
| Date: | 2024-04-27 13:13:50 | 
| Message-ID: | CAAo1mbkiZu07RJ7FC3yFkM_Aue=SpE1_d8stT2g8dyGqSoH8pA@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-sql | 
Hi Kunwar,
You can check -v option of psql, 4th paragraph and \set command in
"Meta-Commads" section, and "Variables" subsection under "Advanced
Features".
https://www.postgresql.org/docs/16/app-psql.html
https://www.postgresql.org/docs/16/app-psql.html#APP-PSQL-VARIABLES
Best regards.
Samed YILDIRIM
On Sat, 27 Apr 2024, 16:03 kunwar singh, <krishsingh(dot)111(at)gmail(dot)com> wrote:
> Hi friends,  Question: How to pass arguments in postgres to sql scripts.
> Context. When I am monitoring my production Oracle databases I have a lot
> of simple sql scripts (which require one or more arguments)  which make my
> monitoring/troubleshooting life simpler. How can I achieve the same in
> postgres? We are migrating our Oracle databases to Postgres  and I am
> modifying my scripts to do the same in Postgres.
>
> Oracle
> ======
> cat appjobcheck.sql
>
> SELECT
>     SID,
>     SYS_CONTEXT.GET_CURRENT_SCHEMA() AS "SCHEMA", -- Similar to datname
>     USERNAME,
>     PROGRAM AS "APPLICATION_NAME",
>     STATUS,
>     SQL_ID, -- Use V$SQL to get full query text based on SQL_ID
>     LOGON_TIME AS "BACKEND_START",
>     SQL_EXEC_START AS "QUERY_START",
> FROM
>     V$SESSION
> WHERE
>     STATUS = 'ACTIVE' -- Filter to active sessions
>     AND TYPE != 'BACKGROUND'; -- Exclude background processes
>     AND program='&1';
>
> The way to invoke from sqlplus is .
>
> SQL> @appjobcheck batchprocessapp1  ---- batchprocessapp1 is what I want
> to monitor
>
>
> Postgres
> ==========
> cat appjobcheck.sql
>
> SELECT
>     pid,
>     datname,
>     usename,
>     application_name,
>     state,
>     query,
>     backend_start,
>     query_start
> FROM pg_stat_activity where application_name='&1';
>
> The way I am trying invoke from postgres is .
>
>
> postgres=> \i appjobcheck.sql batchprocessapp1  ---- batchprocessapp1 is
> what I want to monitor
>  pid | datname | usename | application_name | state | query |
> backend_start | query_start
>
> -----+---------+---------+------------------+-------+-------+---------------+-------------
> (0 rows)
>
> \i: extra argument "batchprocessapp1" ignored
>
> --
> Cheers,
> Kunwar
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | JORGE MALDONADO | 2024-05-01 23:08:33 | One parent record with 3 possible child records | 
| Previous Message | kunwar singh | 2024-04-27 13:03:16 | How to pass arguments in postgres to sql scripts. |