# Pl-Sql

notes

Non-editionable objects

10 February 2024

When you are create an object in Oracle Database, default object type will be marked editionable. From 12c onwards, you can mark the objects as noneditionable , and same you cannot edit with create or replace . For altering the same you have to alter the object and change to editionable.

This is applicable to View, Funcitons, Procedure, Trigger, Library, Type.

create or replace noneditionable procedure test_proc ( p int ) as
begin
  null;
end;
select editionable from user_objects
where  object_name = 'test_proc ';

//result
EDITIONABLE   
N
create or replace procedure test_proc ( p int ) as
begin
  dbms_output.put_line ( 'Editionable version' );
end;

//result
ORA-38824: A CREATE OR REPLACE command may not change the EDITIONABLE property of an existing object.

With below you can alter the procedure.

alter procedure test_proc editionable;
create or replace procedure test_proc ( p int ) as
begin
dbms_output.put_line ( 'Editionable version' );
end;

exec test_proc (1);

//result
Editionable version
References

Oracle Doc

essay

Job commands in Oracle PL/SQL

2 February 2024
Here I am listing the commands using for creating, running, and fetching the scheduler jobs in Oracle database for easy reference.
notes

PL SQL Constraints

27 August 2023

To find the constraints in a table

ALL_CONSTRAINTS: Provides information about all constraints accessible to the user, across all tables in the database. It includes constraint types, status, and more, but doesn’t show column-specific details.

SELECT * FROM ALL_CONSTRAINTS 
WHERE TABLE_NAME='YOUR_TABLE_NAME' 
AND OWNER = 'OWNER_NAME';

To find the constarints referring to a table.

SELECT * FROM ALL_CONSTRAINTS 
WHERE R_CONSTRAINT_NAME IN ( 
    SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS 
    WHERE TABLE_NAME='YOUR_TABLE_NAME' 
    )
AND OWNER = 'OWNER_NAME';

USER_CONS_COLUMNS: Shows details about columns associated with constraints for tables owned by the current user. It’s useful for checking specific columns involved in constraints like primary keys, foreign keys, or unique constraints.

SELECT CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME, POSITION
FROM USER_CONS_COLUMNS
WHERE TABLE_NAME = 'YOUR_TABLE_NAME';
notes

PL/SQL Returning Into

10 July 2023

The RETURNING INTO clause allows us to return column values for rows affected by DML statements. The returned data could be a single column, multiple columns or expressions.

INSERT INTO t1 VALUES (t1_seq.nextval, 'FOUR')
RETURNING id INTO l_id;
References

Oracle, dba-oracle, oracle base

essay

Commenting the stored procedures

5 July 2023
Writings comments in the code will help you and anyone who reads the code by giving more readability and understandings...
essay

Data Dictionary Views in PL/SQL

21 June 2023
This is cheat sheet for data dictionary views in PL/SQL
notes

Directory Objects in PL/SQL

2 March 2023

This view describes all directories accessible to the user.

SELECT * FROM ALL_DIRECTORIES;

This view describes all directories specified for the entire database.

SELECT * FROM DBA_DIRECTORIES;

To view all the tables details, look here.

References

Oracle Doc

notes

Oracle Timestamp

21 December 2022

The TIMESTAMP datatype is an extension on the DATE datatype. In addition to the datetime elements of the DATE datatype, the TIMESTAMP datatype holds fractions of a second to a precision between zero and nine decimal places, the default being six. There are also two variants called TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE. As their names imply, these timestamps also store time zone offset information.

create table table_name (
    column_name number,
    column_name2 timestamp default systimestamp);

References

dba-oracle
dba-oracle 2

notes

Drop table in PL SQL

25 October 2022

To move a table to the recycle bin or remove it entirely from the database, you use the DROP TABLE statement:

DROP TABLE schema_name.table_name
[CASCADE CONSTRAINTS | PURGE];
  • First, indicate the table and its schema that you want to drop after the DROP TABLE clause. If you don’t specify the schema name explicitly, the statement assumes that you are removing the table from your own schema.

  • Second, specify CASCADE CONSTRAINTS clause to remove all referential integrity constraints which refer to primary and unique keys in the table. In case such referential integrity constraints exist and you don’t use this clause, Oracle returns an error and stops removing the table.

  • Third, specify PURGE clause if you want to drop the table and release the space associated with it at once. By using the PURGE clause, Oracle will not place the table and its dependent objects into the recycle bin.

Refernces

oracle tutorial