Home
Files should not have too many lines of code
Rule description
- Files should not have too many lines of code
Non-compliant Code Example
create or replace PACKAGE Employees --Non compliant code (File is having line of code more then default defined limit 100) IS procedure InsertEmployee(fname in nvarchar2, lname in nvarchar2); procedure UpdateEmployeeName(employeeId in integer, fname in nvarchar2, lname in nvarchar2); procedure DeleteEmployeeById( id in NUMBER ); procedure GetAllEmployees; procedure GetManagerOfEmployeeById( id in NUMBER ); procedure OrdersByEmployee2( employee_Id in NUMBER, p_recordset OUT SYS_REFCURSOR ); function CheckEmployee(employee_Id in NUMBER) return BOOLEAN; function GetFullName(fname in nvarchar2, lname in nvarchar2) return nvarchar2; function GetManagerByEmployee( id in NUMBER) return int; procedure LogDeletingEmployee( id in NUMBER); end Employees; / create or replace PACKAGE BODY Employees IS procedure InsertEmployee(fname in nvarchar2, lname in nvarchar2) is begin INSERT INTO EMPLOYEE (EMP_ID,emp_fname, emp_lname) VALUES (EMPLOYEE_seq.nextval,fname,lname); end InsertEmployee; procedure UpdateEmployeeName(employeeId in integer, fname in nvarchar2, lname in nvarchar2) is begin UPDATE EMPLOYEE SET emp_fname=fname, emp_lname=lname WHERE emp_Id = employeeId; end UpdateEmployeeName; procedure GetAllEmployees Is --Get All Employees cursor c1 is SELECT emp_id, emp_lname, emp_fname, emp_street, city,state,zip_code,phone FROM ALL_EMPLOYEES; Begin for r1 in c1 loop dbms_output.put_line( lpad(r1.emp_id,12) || lpad(r1.emp_id,12) || lpad(r1.emp_id,12) ); end loop; end GetAllEmployees; procedure DeleteEmployeeById(id in NUMBER ) Is Begin DELETE EMPLOYEE where emp_id = id; COMMIT; end DeleteEmployeeById; procedure GetManagerOfEmployeeById(id in NUMBER ) Is cursor c1 is SELECT manager_fname FROM ALL_EMPLOYEES_DETAILS where emp_id = id; Begin for r1 in c1 loop dbms_output.put_line( lpad(r1.manager_fname,12) ); end loop; end GetManagerOfEmployeeById; procedure OrdersByEmployee2(employee_Id in NUMBER,p_recordset OUT SYS_REFCURSOR ) Is Begin OPEN p_recordset FOR SELECT sales_order.id Oid, sales_order.order_date Odate, DECODE(sales_order.fin_code_id, 'r1','Revenue','e1','Expense'), sales_order.region Oregion, customer.fname Cfname, customer.lname Clname, sum (sales_order_items.quantity*unit_price) Oamount FROM customer, employee, sales_order_items, sales_order, ALL_PRODUCTS WHERE ( employee.emp_id = employee_Id ) and ( employee.emp_id = sales_order.sales_rep ) and ( customer.id = sales_order.cust_id ) and ( sales_order_items.id = sales_order.id) GROUP BY sales_order.id,sales_order.order_date, sales_order.fin_code_id, sales_order.region, customer.fname, customer.lname; end OrdersByEmployee2; procedure LogDeletingEmployee( id in NUMBER) is title nvarchar2(50); msg nvarchar2(50); begin title := concat('Delete employee id: ',id); msg := concat('Delete employee id: ',id); INSERT INTO AppLog (Log_date, Action, Title,Message,Employee_Id) VALUES (SYSDATE,APPLOGPK.GetActionId('DEL EMPLOYEE'), title,msg , id); end LogDeletingEmployee; function GetManagerByEmployee( id in NUMBER) return int is begin return -1; end GetManagerByEmployee; function CheckEmployee(employee_Id in NUMBER) return BOOLEAN is isChecked BOOLEAN; begin -- Check the employee RETURN(isChecked); end CheckEmployee; function GetFullName(fname in nvarchar2,lname in nvarchar2) return nvarchar2 is begin -- Check the employee RETURN(CONCAT(CONCAT(fname,', '),lname)); end GetFullName; end Employees;