egorius: (Default)
[personal profile] egorius

Удивляюсь, почему в интерактивной среде? терминальном клиенте? интерпретаторе командной строки? — короче, в psql (и в sql*plus!) нет конструкций для циклов.

SQL, как и его процедурные расширения типа PL/pgSQL или PL/SQL, не могут напрямую общаться с пользователем; это правильно. А клиенты, типа psql или sql*plus, — наоборот. И действительно, оба умеют задать пользователю вопрос, узнать ответ и использовать его дальше в запросах. Но ни у одного нет даже примитивных конструкций для циклов, ну и для ветвлений. Да хоть goto какой-нибудь! Но нет.

А мне — для целей обучения — хотелось бы иметь возможность писать примитивные приложения прямо на psql, не привлекая другие языки программирования. Кто его знает, чем владеет человек (может студент, а может и школьник)? А с psql ему все равно придется разбираться. Но получается, что и скрипт написать можно, и интерактивным его сделать можно, но он всегда будет тупо линейным и никак иначе.

Короче, хочется уметь заскриптовать такой диалог:

сервер: Угадай число от 1 до 100?
человек: 42
сервер: Ни фига, 28. Играем еще?
человек: да
сервер: Угадай число от 1 до 100?
...

Или я чего-то не догоняю? Может есть какой-нибудь лайфхак?

From:
Anonymous( )Anonymous This account has disabled anonymous posting.
OpenID( )OpenID You can comment on this post while signed in with an account from many other sites, once you have confirmed your email address. Sign in using OpenID.
User
Account name:
Password:
If you don't have an account you can create one now.
Subject:
HTML doesn't work in the subject.

Message:

 
Notice: This account is set to log the IP addresses of everyone who comments.
Links will be displayed as unclickable URLs to help prevent spam.

Profile

egorius: (Default)
egorius

July 2017

M T W T F S S
     1 2
34 5 6789
10 1112 13141516
17 181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 23rd, 2017 04:53 pm
Powered by Dreamwidth Studios