Вы находитесь на странице: 1из 5

EXNO: 10

PACKAGES

AIM: TO CREATE A PROGRAM USING PACKAGES

QUERIES:

CREATE OR REPLACE PACKAGE sr_pkg IS PRAGMA SERIALLY_REUSABLE; TYPE str_table_type IS TABLE OF VARCHAR2(200) INDEX BY PLS_INTEGER; num str NUMBER := 10;

VARCHAR2(200) := 'default-init-str';

str_tab STR_TABLE_TYPE;

PROCEDURE print_pkg;

PROCEDURE init_and_print_pkg ( n NUMBER, v VARCHAR2 ); END sr_pkg; / CREATE OR REPLACE PACKAGE BODY sr_pkg IS PRAGMA SERIALLY_REUSABLE;

PROCEDURE print_pkg IS num NUMBER;

str

VARCHAR2(200);

str_tab STR_TABLE_TYPE; BEGIN DBMS_OUTPUT.PUT_LINE('num: ' || sr_pkg.num); DBMS_OUTPUT.PUT_LINE('str: ' || sr_pkg.str); DBMS_OUTPUT.PUT_LINE ('number of table elements: ' || sr_pkg.str_tab.count); FOR i IN 1..sr_pkg.str_tab.count LOOP DBMS_OUTPUT.PUT_LINE(sr_pkg.str_tab(i)); END LOOP; END print_pkg;

PROCEDURE init_and_print_pkg ( n NUMBER, v VARCHAR2 ) IS BEGIN sr_pkg.num := n; sr_pkg.str := v;

FOR i IN 1..n LOOP sr_pkg.str_tab(i) := v || ' ' || i; END LOOP;

Print_pkg; END init_and_print_pkg; END sr_pkg;

/ BEGIN DBMS_OUTPUT.PUT_LINE('Initializing and printing package state ...'); sr_pkg.init_and_print_pkg(4, 'kulali'); DBMS_OUTPUT.PUT_LINE('Printing package state in the same CALL ...'); sr_pkg.print_pkg; END; /

Open Cursors DROP TABLE student; CREATE TABLE people (name VARCHAR2(20));

INSERT INTO student (name) VALUES ('ANAND'); INSERT INTO student (name) VALUES ('PREAM'); INSERT INTO student (name) VALUES ('RAJ'); INSERT INTO student (name) VALUES ('RAVI');

CREATE OR REPLACE PACKAGE sr_pkg IS PRAGMA SERIALLY_REUSABLE; CURSOR c IS SELECT name FROM people; END sr_pkg; /

CREATE OR REPLACE PROCEDURE fetch_from_cursor IS name_ VARCHAR2(200); BEGIN

IF sr_pkg.c%ISOPEN THEN DBMS_OUTPUT.PUT_LINE('Cursor is open.'); ELSE DBMS_OUTPUT.PUT_LINE('Cursor is closed; opening now.'); OPEN sr_pkg.c; END IF;

FETCH sr_pkg.c INTO name_; DBMS_OUTPUT.PUT_LINE('Fetched: ' || name_);

FETCH sr_pkg.c INTO name; DBMS_OUTPUT.PUT_LINE('Fetched: ' || name_); END fetch_from_cursor; /

First call to server:

BEGIN fetch_from_cursor; fetch_from_cursor; END; /

Initializing and printing package state ... num: 4

str: kulali number of table elements: 4 ANAND 1 ANAND 2 ANAND 3 ANAND 4 Printing package state in the same CALL ... num: 4 str: kulali number of table elements: 4 ANAND 1 ANAND 2 ANAND 3 ANAND 4

Cursor is closed; opening now. Fetched:ANAND Fetched: ANAND Cursor is open. Fetched: ANAND Fetched: RAVI

RESULT: THE ABOVE PROGRAMS ARE CREATED AND EXECUTED SUCCESSFULLY.

Вам также может понравиться