tutorial password online myaccount corporation codeground oracle plsql sqlfiddle

oracle - password - Error de salida de SQL Fiddle



oracle reset password (2)

En realidad, soy bastante nuevo en PL / SQL

Creé la siguiente tabla usando oracle pl / sql en SQL Fiddle

create table Employee(name varchar2(100),id integer, salary integer,PRIMARY KEY(id)); insert into Employee(name,id,salary) values(''sa'',94,100); insert into Employee(name,id,salary) values(''pr'',88,150); insert into Employee(name,id,salary) values(''ji'',33,900); insert into Employee(name,id,salary) values(''na'',24,880); insert into Employee(name,id,salary) values(''po'',65,770); insert into Employee(name,id,salary) values(''ri'',69,910); insert into Employee(name,id,salary) values(''uj'',12,650); insert into Employee(name,id,salary) values(''ad'',43,440); insert into Employee(name,id,salary) values(''sam'',40,550);

Ejecuté la siguiente consulta

DECLARE employee_record Employee%ROWTYPE; BEGIN select * into employee_record from Employee where id>90; dbms_output.put_line(employee_record.name||'' ''||employee_record.id||'' ''||employee_record.salary); END; /

Estoy obteniendo la siguiente salida

Record Count: 0; Execution Time: 2ms

Debería imprimir los valores presentes en el registro del empleado, ¿verdad? ¿Hay algo mal en mi consulta sql o algún problema con sql fiddle no puede mostrar dbms_output?


Necesitas emular dbms_output.put_line :)

Esquema:

create table Employee( name varchar2(100), id integer, salary integer, PRIMARY KEY(id) ); insert into Employee(name,id,salary) values(''sa'',94,100); insert into Employee(name,id,salary) values(''pr'',88,150); insert into Employee(name,id,salary) values(''ji'',33,900); insert into Employee(name,id,salary) values(''na'',24,880); insert into Employee(name,id,salary) values(''po'',65,770); insert into Employee(name,id,salary) values(''ri'',69,910); insert into Employee(name,id,salary) values(''uj'',12,650); insert into Employee(name,id,salary) values(''ad'',43,440); insert into Employee(name,id,salary) values(''sam'',40,550); create table dbmsoutput ( pos int, mes varchar2(4000) );

SQL:

DECLARE employee_record Employee%ROWTYPE; procedure put_line(p_mes in varchar2) is v_pos int; begin select count(0) into v_pos from dbmsoutput; insert into dbmsoutput (pos, mes) values (v_pos, p_mes); end; BEGIN put_line(''Hello! This code is powered by dbms_output emulator :)''); -- Your code here: select * into employee_record from Employee where id>90; put_line(employee_record.name||'' ''||employee_record.id||'' ''||employee_record.salary); -- put_line(''Bye!''); END; / SELECT mes FROM dbmsoutput order by pos

violín


Solo como curiosidad, puede obtener resultados dbms_output limitados de SQL Fiddle, pero necesita una función para extraer las líneas almacenadas y devolverlas en un formulario que puede seleccionar. Esto usa una tabla canalizada:

create type t_lines as table of varchar2(4000) / create or replace function get_lines return t_lines pipelined is lines dbms_output.chararr; numlines integer; begin numlines := 999; dbms_output.get_lines(lines, numlines); if numlines > 0 then for i in 1..numlines loop pipe row (lines(i)); end loop; else pipe row (''No data''); end if; end; /

Y luego, después de lo que sea que haya emitido llamadas dbms_output.put_line :

select * from table(get_lines);

Demo Y consulte la documentación dbms_output para ver qué hace su procedimiento get_lines y cómo se relaciona con sus llamadas put_lines .

Pero solo porque puedes hacer algo, no significa que necesariamente deberías hacerlo . Esto es incómodo y no escala, pero tampoco lo hace tratando de aprender PL / SQL a través de SQL Fiddle realmente.

Me gustaría secundar la recomendación de Ben de obtener tu propia base de datos para jugar, pero te sugiero que mires una imagen VM pregenerada que puedes ejecutar en VirtualBox, lo que te ahorra mucho tiempo en la configuración: no lo haces tiene que preocuparse acerca de cómo instalar el software de Oracle o crear y configurar una base de datos, solo está listo para usar, y puede tirarlo o comenzar fácilmente de nuevo si las cosas van mal.