user input during runtime

Started by Ashish Karalkarabout 19 years ago6 messagesgeneral
Jump to latest
#1Ashish Karalkar
ashish.karalkar@info-spectrum.com

Hello All,
I want to prompt user to input some value and do some action on that value in runtime of a sql script.
Is there any psql command to do this ??
I can use \echo do display massage
but to take input what is the command?
Thanks in advance

With Regards
Ashish Karalkar

#2Bruce Momjian
bruce@momjian.us
In reply to: Ashish Karalkar (#1)
Re: user input during runtime

Ashish Karalkar wrote:

Hello All,
I want to prompt user to input some value and do some action on that value in runtime of a sql script.
Is there any psql command to do this ??
I can use \echo do display massage
but to take input what is the command?
Thanks in advance

You can do:

\echo -n 'Enter value: '
\set x `read && echo $REPLY`

in psql. I think we will have \prompt in 8.3.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://www.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

#3David Fetter
david@fetter.org
In reply to: Bruce Momjian (#2)
Re: user input during runtime

On Fri, Feb 16, 2007 at 08:23:48PM -0500, Bruce Momjian wrote:

Ashish Karalkar wrote:

Hello All,
I want to prompt user to input some value and do some action on that value in runtime of a sql script.
Is there any psql command to do this ??
I can use \echo do display massage
but to take input what is the command?
Thanks in advance

You can do:

\echo -n 'Enter value: '
\set x `read && echo $REPLY`

Neat trick! Is there one that works on all our supported platforms?
I'm guessing Win32 will just get confused about backticks.

in psql. I think we will have \prompt in 8.3.

Well, I guess it's not all that crucial with \prompt coming out. :)

Cheers,
D
--
David Fetter <david@fetter.org> http://fetter.org/
phone: +1 415 235 3778 AIM: dfetter666
Skype: davidfetter

Remember to vote!

#4Magnus Hagander
magnus@hagander.net
In reply to: David Fetter (#3)
Re: user input during runtime

David Fetter wrote:

On Fri, Feb 16, 2007 at 08:23:48PM -0500, Bruce Momjian wrote:

Ashish Karalkar wrote:

Hello All,
I want to prompt user to input some value and do some action on that value in runtime of a sql script.
Is there any psql command to do this ??
I can use \echo do display massage
but to take input what is the command?
Thanks in advance

You can do:

\echo -n 'Enter value: '
\set x `read && echo $REPLY`

Neat trick! Is there one that works on all our supported platforms?
I'm guessing Win32 will just get confused about backticks.

Win32 will deal with the backticks Ok, but not the read && echo part.
You can set it to the output of a variable, for example
\set x `echo foo`

but I haven't been able to trick it into actually reading something. One
would think something like:
\set x `set /p Z= && echo %Z%`
would work, but it doesn't. One reason for this is that %Z% is actually
resolved at parsing time. it's a pain in CMD language, but that's how it
works. :-(

//Magnus

#5Bruce Momjian
bruce@momjian.us
In reply to: Magnus Hagander (#4)
Re: user input during runtime

Magnus Hagander wrote:

Win32 will deal with the backticks Ok, but not the read && echo part.
You can set it to the output of a variable, for example
\set x `echo foo`

but I haven't been able to trick it into actually reading something. One
would think something like:
\set x `set /p Z= && echo %Z%`
would work, but it doesn't. One reason for this is that %Z% is actually
resolved at parsing time. it's a pain in CMD language, but that's how it
works. :-(

CMD "language"? LOL

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://www.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

#6Joshua D. Drake
jd@commandprompt.com
In reply to: Bruce Momjian (#5)
Re: user input during runtime

Bruce Momjian wrote:

Magnus Hagander wrote:

Win32 will deal with the backticks Ok, but not the read && echo part.
You can set it to the output of a variable, for example
\set x `echo foo`

but I haven't been able to trick it into actually reading something. One
would think something like:
\set x `set /p Z= && echo %Z%`
would work, but it doesn't. One reason for this is that %Z% is actually
resolved at parsing time. it's a pain in CMD language, but that's how it
works. :-(

CMD "language"? LOL

We have our own language?

;)

Joshua D. Drake

--

=== The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
Providing the most comprehensive PostgreSQL solutions since 1997
http://www.commandprompt.com/

Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate
PostgreSQL Replication: http://www.commandprompt.com/products/