pagesize maximum linesize length comandos column sql oracle sqlplus

sql - maximum - set size oracle



instrucción sqlplus desde línea de comando (4)

¿Es posible hacer algo como esto?

$ sqlplus -s user/pass "select 1 from dual" o
$ echo "select 1 from dual" | sqlplus -s user/pass

Sé que puedo poner select 1 from dual en un archivo y hacer esto:
$ sqlplus -s user/pass @myFile.sql

pero me pregunto si realmente es necesario crear un archivo solo para satisfacer sqlplus


Mi version

$ sqlplus -s username/password@host:port/service <<< "select 1 from dual;" 1 ---------- 1

EDITAR:

Para multilínea puedes usar esto

$ echo -e "select 1 from dual; /n select 2 from dual;" | sqlplus -s username/password@host:port/service 1 ---------- 1 2 ---------- 2


Puedo ejecutar tu consulta exacta solo asegurándome de que haya un punto y coma al final de mi declaración de selección. (La salida es real, se han eliminado los parámetros de conexión).

echo "select 1 from dual;" | sqlplus -s username/password@host:1521/service

Salida:

1 ---------- 1

Tenga en cuenta que es importante, pero esto se está ejecutando en Mac OS X Snow Leopard y Oracle 11g.


Solo tenga en cuenta que en Unix / Linux su usuario / contraseña puede ser visto por cualquiera que pueda ejecutar el comando "ps -ef" si lo coloca directamente en la línea de comando. Podría ser un gran problema de seguridad (o convertirse en un gran problema de seguridad).

Normalmente recomiendo crear un archivo o usar aquí el documento para que pueda proteger el nombre de usuario / contraseña de ser visto con el comando "ps -ef" en Unix / Linux. Si el nombre de usuario / contraseña está contenido en un archivo de script o archivo sql, puede protegerlo utilizando los permisos de lectura de usuario / grupo apropiados. Luego puede mantener el usuario / pase dentro del archivo como este en un script de shell:

sqlplus -s /nolog <<EOF connect user/pass select blah; quit EOF


Supongo que esto es * nix?

Use "aquí documento":

sqlplus -s user/pass <<+EOF select 1 from dual; +EOF

EDITAR: Debería haber intentado tu segundo ejemplo. Funciona también (incluso en Windows, sin tics):

$ echo ''select 1 from dual;''|sqlplus -s user/pw 1 ---------- 1 $