How can I use an environment variable in a Postgres function?












3















Let's say I have a windows user environment variable SOME_STRING.



Is it possible to use its value in a PL/pgSQL function?



If not, do I need to use an untrusted language (like PL/pythonu) or can I use a trusted one?



I am on PG 9.2










share|improve this question





























    3















    Let's say I have a windows user environment variable SOME_STRING.



    Is it possible to use its value in a PL/pgSQL function?



    If not, do I need to use an untrusted language (like PL/pythonu) or can I use a trusted one?



    I am on PG 9.2










    share|improve this question



























      3












      3








      3








      Let's say I have a windows user environment variable SOME_STRING.



      Is it possible to use its value in a PL/pgSQL function?



      If not, do I need to use an untrusted language (like PL/pythonu) or can I use a trusted one?



      I am on PG 9.2










      share|improve this question
















      Let's say I have a windows user environment variable SOME_STRING.



      Is it possible to use its value in a PL/pgSQL function?



      If not, do I need to use an untrusted language (like PL/pythonu) or can I use a trusted one?



      I am on PG 9.2







      postgresql plpgsql environment-variables






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Oct 25 '13 at 18:18







      Neil McGuigan

















      asked Oct 25 '13 at 18:08









      Neil McGuiganNeil McGuigan

      5,55932444




      5,55932444






















          1 Answer
          1






          active

          oldest

          votes


















          0














          You can not access a environment variable directly; but you can access a custom configuration setting and set that to a value from the environment at startup. For example, you can pass the follow startup option using PGOPTIONS:



          PGOPTIONS="-c 'custom.some_string=${SOME_STRING}'"


          Note: the dot (.) in the name is important.



          Then retrieve the value using current_setting:



          SELECT current_setting('custom.some_string');


          (I have tried this on Linux and found it to be working, it should be the same for Windows, but may need some slight modification to cater of that particular platform.)






          share|improve this answer








          New contributor




          Corin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.




















            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "182"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f52235%2fhow-can-i-use-an-environment-variable-in-a-postgres-function%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            You can not access a environment variable directly; but you can access a custom configuration setting and set that to a value from the environment at startup. For example, you can pass the follow startup option using PGOPTIONS:



            PGOPTIONS="-c 'custom.some_string=${SOME_STRING}'"


            Note: the dot (.) in the name is important.



            Then retrieve the value using current_setting:



            SELECT current_setting('custom.some_string');


            (I have tried this on Linux and found it to be working, it should be the same for Windows, but may need some slight modification to cater of that particular platform.)






            share|improve this answer








            New contributor




            Corin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.

























              0














              You can not access a environment variable directly; but you can access a custom configuration setting and set that to a value from the environment at startup. For example, you can pass the follow startup option using PGOPTIONS:



              PGOPTIONS="-c 'custom.some_string=${SOME_STRING}'"


              Note: the dot (.) in the name is important.



              Then retrieve the value using current_setting:



              SELECT current_setting('custom.some_string');


              (I have tried this on Linux and found it to be working, it should be the same for Windows, but may need some slight modification to cater of that particular platform.)






              share|improve this answer








              New contributor




              Corin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
              Check out our Code of Conduct.























                0












                0








                0







                You can not access a environment variable directly; but you can access a custom configuration setting and set that to a value from the environment at startup. For example, you can pass the follow startup option using PGOPTIONS:



                PGOPTIONS="-c 'custom.some_string=${SOME_STRING}'"


                Note: the dot (.) in the name is important.



                Then retrieve the value using current_setting:



                SELECT current_setting('custom.some_string');


                (I have tried this on Linux and found it to be working, it should be the same for Windows, but may need some slight modification to cater of that particular platform.)






                share|improve this answer








                New contributor




                Corin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.










                You can not access a environment variable directly; but you can access a custom configuration setting and set that to a value from the environment at startup. For example, you can pass the follow startup option using PGOPTIONS:



                PGOPTIONS="-c 'custom.some_string=${SOME_STRING}'"


                Note: the dot (.) in the name is important.



                Then retrieve the value using current_setting:



                SELECT current_setting('custom.some_string');


                (I have tried this on Linux and found it to be working, it should be the same for Windows, but may need some slight modification to cater of that particular platform.)







                share|improve this answer








                New contributor




                Corin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.









                share|improve this answer



                share|improve this answer






                New contributor




                Corin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.









                answered 17 mins ago









                CorinCorin

                101




                101




                New contributor




                Corin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.





                New contributor





                Corin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






                Corin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Database Administrators Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f52235%2fhow-can-i-use-an-environment-variable-in-a-postgres-function%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    SQL Server 17 - Attemping to backup to remote NAS but Access is denied

                    Always On Availability groups resolving state after failover - Remote harden of transaction...

                    Restoring from pg_dump with foreign key constraints