Oracle 存储过程A

时间:2022-04-23 19:55:56
create or replace procedure users_procedure is
  cursor users_cursor is select * from users;
  v_id users.id%type;
  v_username users.username%type;
  v_password users.password%type;
begin
  open users_cursor;
  fetch users_cursor into v_id, v_username, v_password;
  while users_cursor%found
    loop
      dbms_output.put_line('v_id = ' || v_id || 'v_username = ' || v_username || 'v_password = ' || v_password);
      fetch users_cursor into v_id, v_username, v_password;
    end loop;
  close users_cursor;
end;
/


create or replace procedure users_batch_insert_procedure is
  v_id users.id%type;
  v_username users.username%type;
  v_password users.password%type;
begin
  for i in 0..1000
    loop
      v_id := i;
      v_username := 'abc' || i;
      v_password := 'efg' || i;
      insert into users values(v_id, v_username, v_password);
      commit;
    end loop;
end;
/

create or replace procedure users_a is
  type users_cursor_type is ref cursor; --return users%rowtype;
  type users_record_type is record (v_id users.id%type, v_username users.username%type, v_password users.password%type);
  v_sql varchar2(2000);
  users_cursor_a users_cursor_type;
  users_record users_record_type;
begin
  v_sql := 'select * from users';
  open users_cursor_a for v_sql;
  fetch users_cursor_a into users_record;
  while users_cursor_a%found
    loop
      dbms_output.put_line('v_id = ' || users_record.v_id || 'v_username = ' || users_record.v_username || 'v_password = ' || users_record.v_password);
      fetch users_cursor_a into users_record;
    end loop;
  close users_cursor_a;
end;
/

create or replace procedure users_a is
  type users_cursor_type is ref cursor return users%rowtype;
  v_row users%rowtype;
  v_sql varchar2(2000);
  users_cursor_a users_cursor_type;
begin
  
  open users_cursor_a for select * from users;
  fetch users_cursor_a into v_row;
  while users_cursor_a%found
    loop
      dbms_output.put_line('v_id = ' || v_row.id || 'v_username = ' || v_row.username || 'v_password = ' || v_row.password);
      fetch users_cursor_a into v_row;
    end loop;
  close users_cursor_a;
end;
/

set serveroutput on size 1000000;