PLS-00304: cannot compile body of 'PA_TIME_CLIENT_EXTN' without its specifi
Hi expert,
We are trying the validate the PA_TIME_CLIENT_EXTN package body. It is giving the below error.
0/0 PL/SQL: Compilation unit analysis terminated
1/14 PLS-00905: object APPS.PA_TIME_CLIENT_EXTN is invalid
1/14 PLS-00304: cannot compile body of 'PA_TIME_CLIENT_EXTN' without
its specification
My environment details are as below.
Oracle apps version: 11.5.10.2
DB version : 11.2.0.1
OS version : IBM AIX 6.1
Please help me on this.
Thanks
This error is usually seen when you have a different datatype specification in your package specification and your package body. I think that is some thing you might want to check first.
Regards,
Johan Louwers
Similar Messages
-
PLS-00304: cannot compile body of package without its specification
Hi all,
While compiling the below pasted package , I got the following error msg.
PL/SQL: Compilation unit analysis terminated
PLS-00304: cannot compile body of 'EDR_RPT_CLASS_BY_TAWT_PACKAGE'
without its specification
PLS-00905: object HDOT.EDR_RPT_CLASS_BY_TAWT_PACKAGE is invalidBut I believe that have declared package and ppackage body specification correctly. Please could anyone help me to find out the error
CREATE OR REPLACE PACKAGE edr_rpt_class_by_tawt_package AS
PROCEDURE edr_rpt_gen_class_by_tawt (
in_report_parameter_id IN report_tasks.report_task_id%TYPE,
report_data OUT SYS_REFCURSOR,
chart_data OUT SYS_REFCURSOR,
footer_data OUT SYS_REFCURSOR
PROCEDURE edr_rpt_gen_class_by_fawt (
in_report_parameter_id IN report_tasks.report_task_id%TYPE,
report_data OUT SYS_REFCURSOR,
chart_data OUT SYS_REFCURSOR,
footer_data OUT SYS_REFCURSOR
PROCEDURE edr_rpt_gen_class_by_sawt (
in_report_parameter_id IN report_tasks.report_task_id%TYPE,
report_data OUT SYS_REFCURSOR,
chart_data OUT SYS_REFCURSOR,
footer_data OUT SYS_REFCURSOR
PROCEDURE edr_rpt_gen_class_by_triawt (
in_report_parameter_id IN report_tasks.report_task_id%TYPE,
report_data OUT SYS_REFCURSOR,
chart_data OUT SYS_REFCURSOR,
footer_data OUT SYS_REFCURSOR
PROCEDURE edr_rpt_gen_class_by_qawt (
in_report_parameter_id IN report_tasks.report_task_id%TYPE,
report_data OUT SYS_REFCURSOR,
chart_data OUT SYS_REFCURSOR,
footer_data OUT SYS_REFCURSOR
FUNCTION class_count
in_lane_id edr_rpt_by_ranges_output.lane_id%TYPE,
in_direction_id edr_rpt_by_ranges_output.direction_id%TYPE,
in_interval_start_date_time edr_rpt_by_ranges_output.interval_start_date_time%TYPE,
in_interval_end_date_time edr_rpt_by_ranges_output.interval_start_date_time%TYPE,
in_axle_wt_min edr_cls_by_tawt_report_data.group_weight%TYPE,
iin_axle_wt_max edr_cls_by_tawt_report_data.group_weight%TYPE,
in_class_min edr_cls_by_tawt_report_data.vehicle_class%TYPE,
in_class_max edr_cls_by_tawt_report_data.vehicle_class%TYPE
RETURN VARCHAR2;
END edr_rpt_class_by_tawt_package;
CREATE OR REPLACE PACKAGE BODY edr_rpt_class_by_tawt_package AS
c_front_axle_only CONSTANT axle_class.group_type%TYPE := -1;
c_axle_single_group_type CONSTANT axle_class.group_type%TYPE := 1;
c_axle_tandem_group_type CONSTANT axle_class.group_type%TYPE := 2;
c_axle_tridem_group_type CONSTANT axle_class.group_type%TYPE := 3;
c_axle_quadrem_group_type CONSTANT axle_class.group_type%TYPE := 4;
c_kips_conversion_unit_id CONSTANT units.unit_id%TYPE := 8;
v_report_axle_group_type axle_class.group_type%TYPE := 0;
FUNCTION class_count
in_lane_id edr_rpt_by_ranges_output.lane_id%TYPE,
in_direction_id edr_rpt_by_ranges_output.direction_id%TYPE,
in_interval_start_date_time edr_rpt_by_ranges_output.interval_start_date_time%TYPE,
in_interval_end_date_time edr_rpt_by_ranges_output.interval_start_date_time%TYPE,
in_axle_wt_min edr_cls_by_tawt_report_data.group_weight%TYPE,
in_axle_wt_max edr_cls_by_tawt_report_data.group_weight%TYPE,
in_class_min edr_cls_by_tawt_report_data.vehicle_class%TYPE,
in_class_max edr_cls_by_tawt_report_data.vehicle_class%TYPE
RETURN NUMBER
IS
my_count_result NUMBER(18);
BEGIN
SELECT NVL(SUM(vehicle_count), 0 )
INTO my_count_result
FROM
SELECT site_lane_id
FROM edr_rpt_tmp_report_lanes
WHERE edr_rpt_tmp_report_lanes.output_lane_id = in_lane_id
AND edr_rpt_tmp_report_lanes.output_direction_id = in_direction_id
) report_lanes
JOIN edr_cls_by_tawt_report_data
ON edr_cls_by_tawt_report_data.site_lane_id = report_lanes.site_lane_id
WHERE edr_cls_by_tawt_report_data.bin_start_date_time >= in_interval_start_date_time
AND edr_cls_by_tawt_report_data.bin_start_date_time < in_interval_end_date_time
AND edr_cls_by_tawt_report_data.group_weight >= in_axle_wt_min
AND edr_cls_by_tawt_report_data.group_weight < in_axle_wt_max
AND edr_cls_by_tawt_report_data.vehicle_class >= in_class_min
AND edr_cls_by_tawt_report_data.vehicle_class <= in_class_max
RETURN my_count_result;
END;
FUNCTION get_row_class_counts_text
RETURN VARCHAR2
IS
my_row_counts_text VARCHAR2(10000);
my_row_counts_entry VARCHAR2(10000);
CURSOR row_counts_text IS
SELECT 'edr_rpt_class_by_tawt_package.class_count('
||'lane_id, '
||'direction_id, '
||'interval_start_date_time, '
||'interval_end_date_time, '
||'range_low, '
||'range_high, '
|| class_id || ', '
|| class_id || ') "'|| class_id || '"'
FROM edr_rpt_tmp_report_classes
ORDER BY class_id;
BEGIN
my_row_counts_text := '';
my_row_counts_entry := '';
-- generate the speed ranges function calls
OPEN row_counts_text;
LOOP
FETCH row_counts_text INTO my_row_counts_entry;
EXIT WHEN row_counts_text%NOTFOUND;
my_row_counts_text := my_row_counts_text || ', ' || my_row_counts_entry;
END LOOP;
CLOSE row_counts_text;
RETURN my_row_counts_text;
END;
FUNCTION get_row_totals_text
RETURN VARCHAR2
IS
my_row_count_total_text VARCHAR2(10000);
BEGIN
my_row_count_total_text := '';
-- generate the 'total' column function call
SELECT 'edr_rpt_class_by_tawt_package.class_count('
||'lane_id, '
||'direction_id, '
||'interval_start_date_time, '
||'interval_end_date_time, '
||'range_low, '
||'range_high, '
|| MIN(class_id) || ', '
|| MAX(class_id) || ') " "'
INTO my_row_count_total_text
FROM edr_rpt_tmp_report_classes;
RETURN ', ' || my_row_count_total_text;
END;
PROCEDURE apply_default_awt_ranges(in_report_parameter_id IN NUMBER)
IS
my_awt_ranges_count NUMBER(4);
BEGIN
SELECT nvl(count(1),0)
INTO my_awt_ranges_count
FROM report_range_parameters
WHERE REPORT_PARAMETER_ID = in_report_parameter_id
AND REPORT_PARAMETER_GROUP = 'AXLE_GROUP'
AND REPORT_PARAMETER_NAME = 'AXLE_NAME';
IF ( my_awt_ranges_count = 0 )
THEN
INSERT INTO report_range_parameters (REPORT_PARAMETER_ID, REPORT_PARAMETER_GROUP, REPORT_PARAMETER_NAME, REPORT_PARAMETER_MIN_VALUE, REPORT_PARAMETER_MAX_VALUE)
VALUES (in_report_parameter_id, 'AXLE_GROUP', 'AXLE_NAME', '0', '2');
VALUES (in_report_parameter_id, 'AXLE_GROUP', 'AXLE_NAME', '30', '32');
END IF;
END;
PROCEDURE edr_class_by_tawt_use_per_veh
in_report_parameter_id IN report_tasks.report_task_id%TYPE,
in_good_status_mask IN NUMBER
IS
max_axle_group_value NUMBER(12);
BEGIN
DELETE FROM edr_cls_by_tawt_report_data;
COMMIT;
INSERT INTO edr_cls_by_tawt_report_data
site_id,
site_lane_id,
site_direction_id,
site_direction_name,
bin_start_date_time,
group_weight,
bin_id,
bin_value
SELECT site_id,
site_lane_id,
site_direction_id,
site_direction_name,
date_time,
group_weight,
vehicle_class,
COUNT(vehicle_class)
FROM
SELECT edr_cls_by_tawt_per_veh_data.*
FROM edr_cls_by_tawt_per_veh_data
GROUP BY date_time,
site_lane_id,
group_weight,
vehicle_class,
site_id,
site_direction_id,
site_direction_name;
END edr_class_by_tawt_use_per_veh;
PROCEDURE edr_class_by_tawt_data_type
in_report_parameter_id IN report_tasks.report_task_id%TYPE,
in_good_status_mask IN NUMBER,
in_data_type IN VARCHAR2,
out_data_type_used OUT VARCHAR2
IS
my_bin_entry_count NUMBER(12,0);
my_veh_entry_count NUMBER(12,0);
BEGIN
IF(UPPER(in_data_type) = 'BINNED') THEN
-- Axle information can only be read from Per Vehicle data records
-- - using bins-only is not a supported option
RAISE_APPLICATION_ERROR(-20101,'Binned data cannot be used for this report.');
ELSIF (UPPER(in_data_type) = 'PERVEHICLE')
OR (UPPER(in_data_type) = 'COMBINED')
THEN
out_data_type_used := 'Per Vehicle (All Vehicles)';
edr_class_by_tawt_use_per_veh( in_report_parameter_id, in_good_status_mask );
ELSE
RAISE_APPLICATION_ERROR(-20101,'The data type specified is not recognized.');
END IF;
END edr_class_by_tawt_data_type;
PROCEDURE edr_class_by_tawt_get_veh_data
in_report_parameter_id IN NUMBER,
in_site_id IN NUMBER,
in_start_date_time IN TIMESTAMP,
in_end_date_time IN TIMESTAMP,
in_report_level_min IN NUMBER,
in_report_level_max IN NUMBER
IS
BEGIN
DELETE FROM edr_cls_by_tawt_per_veh_data;
INSERT INTO edr_cls_by_tawt_per_veh_data
site_id,
site_lane_id,
site_direction_id,
site_direction_name,
record_id,
date_time,
group_weight,
vehicle_class,
group_number,
vehicle_status,
vehicle_error_count,
axle_violations_count,
group_type
SELECT axle_info.site_id,
axle_info.site_lane_id,
axle_info.site_direction_id,
axle_info.site_direction_name,
axle_info.record_id,
axle_info.datetime,
axle_info.group_weight,
axle_info.v_class,
axle_info.group_number,
NVL((SELECT SUM(status_code)
FROM traffic_status
WHERE traffic_status.record_id = axle_info.record_id), 0) vehicle_status,
NVL((SELECT COUNT(error_code)
FROM traffic_error
WHERE traffic_error.record_id = axle_info.record_id), 0) vehicle_error_count,
NVL((SELECT COUNT(1)
FROM axle_weight_violation
WHERE axle_weight_violation.record_id = axle_info.record_id), 0) axle_violations_count,
axle_info.group_type
FROM (SELECT site_to_data_source_lane_v.site_id,
site_to_data_source_lane_v.site_lane_id,
site_to_data_source_lane_v.site_direction_id,
site_to_data_source_lane_v.site_direction_name,
traffic_record.record_id,
traffic_record.datetime,
NVL(traffic_class.v_class, 0) v_class,
NVL(axle_class.group_type, 0) group_type,
NVL(axle_class.group_number, 0) group_number,
NVL(TRUNC(sum(convert_units(axle.weight_unit_id,
c_kips_conversion_unit_id,
axle.axle_weight
0
) group_weight
FROM traffic_record
JOIN site_to_data_source_lane_v
ON traffic_record.data_source_id = site_to_data_source_lane_v.data_source_id
AND traffic_record.lane = site_to_data_source_lane_v.data_source_lane_id
GROUP BY site_to_data_source_lane_v.site_id,
site_to_data_source_lane_v.site_lane_id,
site_to_data_source_lane_v.site_direction_id,
site_to_data_source_lane_v.site_direction_name,
traffic_record.record_id,
traffic_record.datetime,
traffic_class.v_class,
axle_class.group_type,
axle_class.group_number
) axle_info
END edr_class_by_tawt_get_veh_data;
PROCEDURE gen_class_by_axle_type
in_report_parameter_id IN report_tasks.report_task_id%TYPE,
report_data OUT SYS_REFCURSOR,
chart_data OUT SYS_REFCURSOR,
footer_data OUT SYS_REFCURSOR
AS
BEGIN
apply_default_awt_ranges(in_report_parameter_id);
my_date_format_mask := edr_rpt_generic_package.edr_rpt_get_date_format_mask(in_report_parameter_id);
my_start_date_time := edr_rpt_generic_package.edr_rpt_get_start_date_time(in_report_parameter_id, my_date_format_mask);
my_end_date_time := edr_rpt_generic_package.edr_rpt_get_end_date_time(in_report_parameter_id, my_date_format_mask);
my_lane_grouping := edr_rpt_generic_package.edr_rpt_get_lane_grouping(in_report_parameter_id);
my_site_id := edr_rpt_generic_package.edr_rpt_get_site_id(in_report_parameter_id);
my_selected_data_type := edr_rpt_generic_package.edr_rpt_get_data_type(in_report_parameter_id);
-- ensure selected classes and lanes temp tables have been populated
edr_rpt_generic_package.edr_rpt_gen_tmp_lanes(in_report_parameter_id);
edr_rpt_generic_package.edr_rpt_gen_tmp_classes(in_report_parameter_id);
edr_rpt_generic_package.edr_rpt_gen_tmp_speed_ranges(in_report_parameter_id);
my_good_weight_statuses_mask := edr_rpt_generic_package.get_good_weight_status_mask(in_report_parameter_id);
edr_rpt_generic_package.edr_rpt_gen_inclusion_table
in_report_parameter_id,
my_date_format_mask,
my_start_date_time,
my_end_date_time
edr_rpt_generic_package.edr_rpt_gen_grouping_table
in_report_parameter_id,
my_date_format_mask,
my_start_date_time,
my_end_date_time
edr_class_by_tawt_get_veh_data
in_report_parameter_id,
my_site_id,
my_start_date_time,
my_end_date_time,
0, --Hardcoded until reclassification is supported.
0 --Hardcoded until reclassification is supported.
edr_class_by_tawt_data_type
in_report_parameter_id,
my_good_weight_statuses_mask,
my_selected_data_type,
my_used_data_type
edr_rpt_generic_package.gen_rpt_by_ranges_output_table
in_report_parameter_id,
'AXLE_GROUP',
'AXLE_NAME'
COMMIT;
my_report_data_statement :=
' SELECT rank "Rank", '
|| ' row_type "Row Type", '
|| ' interval_start_date_time "Date", '
|| ' interval_start_date_time, '
|| ' range_label "Chart X-Axis", '
|| ' lane_id "Group Id" , '
|| ' ''None'' "Group Name", '
|| ' range_label "Speed (mph)" '
|| get_row_class_counts_text
|| get_row_totals_text
|| ' FROM edr_rpt_by_ranges_output '
|| ' ORDER BY lane_id, '
|| ' direction_id, '
|| ' interval_start_date_time, '
|| ' range_high, '
|| ' rank, '
|| ' range_low'
dbms_output.put_line('SQL start------------------------');
dbms_output.put_line(my_report_data_statement);
dbms_output.put_line('SQL end--------------------------');
my_chart_data_statement :=
' SELECT range_low "X Axis", '
|| ' lane_id "Group" '
|| get_row_class_counts_text
|| ' FROM '
|| ' ( '
|| ' SELECT lane_id, '
|| ' direction_id, '
|| ' range_low, '
|| ' range_high, '
|| ' min(interval_start_date_time) interval_start_date_time, '
|| ' max(interval_end_date_time) interval_end_date_time '
|| ' FROM edr_rpt_by_ranges_output '
|| ' WHERE rank = 1 '
|| ' GROUP BY lane_id, direction_id, range_low, range_high '
|| ' ) '
|| ' order by "Group", range_low '
dbms_output.put_line('SQL start------------------------');
dbms_output.put_line(my_chart_data_statement);
dbms_output.put_line('SQL end--------------------------');
SELECT my_used_data_type
INTO my_data_type_used
FROM SYS.DUAL;
SELECT NVL(COUNT(DISTINCT record_id), 0)
INTO my_per_vehicle_total
FROM edr_cls_by_tawt_per_veh_data;
SELECT NVL(COUNT(DISTINCT record_id), 0)
INTO my_status_vehicle_total
FROM edr_cls_by_tawt_per_veh_data
WHERE vehicle_status > 0
AND vehicle_error_count = 0;
SELECT NVL(COUNT(DISTINCT record_id), 0)
INTO my_error_vehicle_total
FROM edr_cls_by_tawt_per_veh_data
WHERE vehicle_error_count > 0;
SELECT NVL(COUNT(DISTINCT record_id), 0)
INTO my_status_clear_total
FROM edr_cls_by_tawt_per_veh_data
WHERE vehicle_status = 0
AND vehicle_error_count = 0;
SELECT NVL(COUNT(1), 0)
INTO my_binned_vehicle_total
FROM edr_cls_by_tawt_per_veh_data;
SELECT NVL(COUNT(1), 0)
INTO my_good_weight_total
FROM edr_cls_by_tawt_per_veh_data
WHERE vehicle_error_count = 0
AND BITAND(vehicle_status, my_good_weight_statuses_mask) = 0;
-- insert vehicle totals into the temporary table
DELETE FROM edr_rpt_tmp_veh_totals_table;
INSERT INTO edr_rpt_tmp_veh_totals_table
SELECT my_data_type_used,
my_per_vehicle_total,
my_binned_vehicle_total,
my_error_vehicle_total,
my_status_vehicle_total,
my_good_weight_total,
my_status_clear_total
FROM SYS.DUAL;
-- execute the query into the output refcursor
OPEN report_data FOR
my_report_data_statement;
OPEN chart_data FOR
my_chart_data_statement;
OPEN footer_data FOR
SELECT data_type_used,
per_vehicle_total,
binned_vehicle_total,
error_vehicle_total,
status_vehicle_total,
good_weight_total,
status_clear_total
FROM edr_rpt_tmp_veh_totals_table;
END gen_class_by_axle_type;
PROCEDURE edr_rpt_gen_class_by_sawt (
in_report_parameter_id IN report_tasks.report_task_id%TYPE,
report_data OUT SYS_REFCURSOR,
chart_data OUT SYS_REFCURSOR,
footer_data OUT SYS_REFCURSOR
AS
BEGIN
v_report_axle_group_type := c_axle_single_group_type;
gen_class_by_axle_type(in_report_parameter_id, report_data, chart_data, footer_data);
END;
PROCEDURE edr_rpt_gen_class_by_fawt (
in_report_parameter_id IN report_tasks.report_task_id%TYPE,
report_data OUT SYS_REFCURSOR,
chart_data OUT SYS_REFCURSOR,
footer_data OUT SYS_REFCURSOR
AS
BEGIN
v_report_axle_group_type := c_front_axle_only ;
gen_class_by_axle_type(in_report_parameter_id, report_data, chart_data, footer_data);
END;
PROCEDURE edr_rpt_gen_class_by_tawt (
in_report_parameter_id IN report_tasks.report_task_id%TYPE,
report_data OUT SYS_REFCURSOR,
chart_data OUT SYS_REFCURSOR,
footer_data OUT SYS_REFCURSOR
AS
BEGIN
v_report_axle_group_type := c_axle_tandem_group_type;
gen_class_by_axle_type(in_report_parameter_id, report_data, chart_data, footer_data);
END;
PROCEDURE edr_rpt_gen_class_by_triawt (
in_report_parameter_id IN report_tasks.report_task_id%TYPE,
report_data OUT SYS_REFCURSOR,
chart_data OUT SYS_REFCURSOR,
footer_data OUT SYS_REFCURSOR
AS
BEGIN
v_report_axle_group_type := c_axle_tridem_group_type;
gen_class_by_axle_type(in_report_parameter_id, report_data, chart_data, footer_data);
END;
PROCEDURE edr_rpt_gen_class_by_qawt (
in_report_parameter_id IN report_tasks.report_task_id%TYPE,
report_data OUT SYS_REFCURSOR,
chart_data OUT SYS_REFCURSOR,
footer_data OUT SYS_REFCURSOR
AS
BEGIN
v_report_axle_group_type := c_axle_quadrem_group_type;
gen_class_by_axle_type(in_report_parameter_id, report_data, chart_data, footer_data);
END;
END edr_rpt_class_by_tawt_package;
LIST
SHOW ERRORHi,
PLS-00304: cannot compile body of 'EDR_RPT_CLASS_BY_TAWT_PACKAGE'
without its specificationThis error usually indicates an issue with used datatypes in a package spec. that differs from a package body.
Check your spec:
FUNCTION class_count
in_lane_id edr_rpt_by_ranges_output.lane_id%TYPE,
in_direction_id edr_rpt_by_ranges_output.direction_id%TYPE,
in_interval_start_date_time edr_rpt_by_ranges_output.interval_start_date_time%TYPE,
in_interval_end_date_time edr_rpt_by_ranges_output.interval_start_date_time%TYPE,
in_axle_wt_min edr_cls_by_tawt_report_data.group_weight%TYPE,
iin_axle_wt_max edr_cls_by_tawt_report_data.group_weight%TYPE,
in_class_min edr_cls_by_tawt_report_data.vehicle_class%TYPE,
in_class_max edr_cls_by_tawt_report_data.vehicle_class%TYPE
RETURN VARCHAR2; However in your package body:
FUNCTION class_count
in_lane_id edr_rpt_by_ranges_output.lane_id%TYPE,
in_direction_id edr_rpt_by_ranges_output.direction_id%TYPE,
in_interval_start_date_time edr_rpt_by_ranges_output.interval_start_date_time%TYPE,
in_interval_end_date_time edr_rpt_by_ranges_output.interval_start_date_time%TYPE,
in_axle_wt_min edr_cls_by_tawt_report_data.group_weight%TYPE,
in_axle_wt_max edr_cls_by_tawt_report_data.group_weight%TYPE,
in_class_min edr_cls_by_tawt_report_data.vehicle_class%TYPE,
in_class_max edr_cls_by_tawt_report_data.vehicle_class%TYPE
RETURN NUMBERReturn number in spec. vs. return varchar2 in body..
That won't compile, either return a number or a varchar2 in both. (spec and body). -
Cannot compile body of dbms_utility without its specification
hi there!
I just got this error on my 11g EE database
yesterday had power problems, and the backup batery did not work(but it happens very often)
today, trying to send email with a job, i realized through TOAD that sys has 304 invalid objects.
Try to compile and it seems something missing.
"cannot compile body of dbms_utility without its specification"
I cant find that specification and no forums found related to this.
need help from experts..
S.O. Oracle enterprise linux 4.7
D.B. Oracle Enterprise 11.2
thanks!Virendra, thanks for your time, this is the output
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> ALTER PACKAGE SYS.DBMS_UTILITY COMPILE;
show errors
ALTER PACKAGE SYS.DBMS_UTILITY COMPILE BODY;
show errors
Warning: Package altered with compilation errors.
SQL> Errors for PACKAGE SYS.DBMS_UTILITY:
LINE/COL ERROR
262/75 PLS-00103: Encountered the symbol "end-of-file" when expecting
one of the following:
end function pragma procedure subtype type <an identifier>
<a double-quoted delimited-identifier> current cursor delete
exists prior
SQL>
Warning: Package Body altered with compilation errors.
SQL> -
Hi all,
thanks for helping me in resolving the follwoing error
USER234@dev>Create or replace package a2
2 is
3
4 TYPE a2_rectype is RECORD
5 (drop_no varchar2(100));
6
7 TYPE a2_tabtype IS TABLE OF a2_rectype
8 INDEX BY BINARY_INTEGER;
9
10 Procedure a2_proc1;
11
12 End;
13 /
Package created.
Elapsed: 00:00:00.06
USER234@dev>Create or replace package body a2
2 is
3 Procedure a2_proc1
4 is
5 begin
6 null;
7 end;
8
9 End;
10 /
Package body created.
Elapsed: 00:00:00.04
USER234@dev>Create or replace package a1
2 is
3 TYPE a1_rectype IS RECORD ( order_no varchar2(100));
4 TYPE a1_tabtype IS TABLE OF a1_rectype INDEX BY BINARY_INTEGER;
5
6 Procedure a1_proc1;
7 Procedure a1_proc2(r_cd a2.a2_tabtype);
8
9 End;
10 /
Package created.
Elapsed: 00:00:00.07
USER234@dev>Create or replace package body a1
2 is
3 Procedure a1_proc1
4 is
5 begin
6 null;
7 end;
8
9 Procedure a1_proc2(r_cd a2.a2_tabtype)
10 is
11 begin
12 null;
13 end;
14 End;
15 /
Package body created.
Elapsed: 00:00:00.07
USER234@dev>Create or replace package a2
2 is
3
4 TYPE a2_rectype is RECORD
5 (drop_no varchar2(100));
6
7 TYPE a2_tabtype IS TABLE OF a2_rectype
8 INDEX BY BINARY_INTEGER;
9
10 Procedure a2_proc1;
11 Procedure a2_proc2(p_tabtype a1.a1_tabtype);
12
13 End;
14 /
Package created.
Elapsed: 00:00:00.06
USER234@dev>Create or replace package body a2
2 is
3 Procedure a2_proc1
4 is
5 begin
6 null;
7 end;
8
9
10 Procedure a2_proc2(p_tabtype a1.a1_tabtype)
11 is
12 begin
13 null;
14 end;
15
16 End;
17 /
Warning: Package Body created with compilation errors.
Elapsed: 00:00:00.09
USER234@dev>show error
Errors for PACKAGE BODY A2:
LINE/COL ERROR
0/0 PL/SQL: Compilation unit analysis terminated
1/14 PLS-00304: cannot compile body of 'A2' without its specification
1/14 PLS-00905: object USER234.A2 is invalidThe correct approach is to instead do the following:
create or replace package CustomTypes as
type a1_rectype IS RECORD ( order_no varchar2(100) );
type a1_tabtype IS TABLE OF a1_rectype INDEX BY BINARY_INTEGER;
type a2_rectype is RECORD(drop_no varchar2(100) );
type a2_tabtype IS TABLE OF a2_rectype INDEX BY BINARY_INTEGER;
end;And then define packages A1 and A2 that refers to this CustomTypes package.
Not only is circular referencing eliminating, but this provides a modular approach where custom types that are global (ito PL/SQL), are defined and maintained and referenced in/from a single place.
Another approach, and one that I prefer, is to eliminate PL/SQL custom types as far as possible and use custom SQL data types instead. This is a lot more flexible as these types are object orientated (better feature set) and can be used in both SQL and PL/SQL languages. PL/SQL custom types are not object orientated (equivalent to C struct and Pacal record types) and are restricted to PL/SQL use only.
For the above custom types, I would define a single SQL data type:
create or replace type TStrings is table of varchar2(4000);This can be used for dealing with any collection of strings - instead of having a string collection type for order numbers and the same type definition with a different name for drop numbers.
Of course if these are actual number data, then a collection of number() should be defined, e.g.
create or replace type TNumbers is table of number; -
Cannot Compile. Pls. help!
I cannot compile the following program which calls for another 6 class files from its code. Please note the main program (DiveLog.java)+the other 6 class files are stored in the same directory.
And also as this involves "package" I tried to compile it as "javac -classpath DiveLog.jav". But I still get the 'cannot resolve symbol' error messages.
DiveLog.java (Main Program)
package DiveLog;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class DiveLog
private JFrame dlframe; //Not assigned yet.
private JTabbedPane tabbedPane; //Not assigned yet.
//Begins Constructor
public DiveLog()
// Create a frame object to add the application GUI components to.
dlframe = new JFrame("A Java(TM) Technology Dive Log");
// Closes from title bar and from menu
dlframe.addWindowListener(new WindowAdapter()
public void windowClosing(WindowEvent e)
System.exit(0);
// Tabbed pane with panels for Jcomponents
// Instantiate JTabbedPane with keyword new
tabbedPane = new JTabbedPane(SwingConstants.LEFT);
// Calls method to set color
tabbedPane.setBackground(Color.blue);
tabbedPane.setForeground(Color.white);
populateTabbedPane();
//Calls the method that builds the menu
buildMenu();
dlframe.getContentPane().add(tabbedPane);
dlframe.pack();
dlframe.setSize(765, 690);
dlframe.setBackground(Color.white);
dlframe.setVisible(true);
}// Ends Constructor
private void populateTabbedPane()
// Create tabs with titles
tabbedPane.addTab("Welcome", null, new Welcome(), "Welcome to the Dive Log");
tabbedPane.addTab("Diver Data", null, new Diver(), "Click here to enter diver data");
tabbedPane.addTab("Log Dives", null, new Dives(),
"Click here to enter dives");
tabbedPane.addTab("Statistics", null, new Statistics(),
"Click here to calculate" + " dive statistics");
tabbedPane.addTab("Favorite Web Site", null, new Website(),
"Click here to see a web site");
tabbedPane.addTab("Resources", null, new Resources(),
"Click here to see a list of resources");
} //Ends populateTabbedPane method
// Method header
private void buildMenu()
// Instantiates JMenuBar, JMenu,
// and JMenuItem.
JMenuBar mb = new JMenuBar();
JMenu menu = new JMenu("File");
JMenuItem item = new JMenuItem("Exit");
//Closes the application from the Exit menu item.
item.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
System.exit(0);
} // Closes actionPerformed method
}); // Closes addActionListener method
//Adds the item to the menu object
menu.add(item);
//Adds the menu object with item onto the menu bar
mb.add(menu);
//Sets the menu bar in the frame
dlframe.setJMenuBar(mb);
} //Ends buildMenu method
public static void main(String[] args)
DiveLog dl = new DiveLog();
} //Ends Class
===========================================
Welcome.class (one of the 6 class files.The other 5 are identical to this.)
package divelog;
* This class creates the content on the
* Welcome tabbed pane in the Dive Log
* application.
* @version 1.0
//import for buttons, labels, and images
import javax.swing.*;
//import for layout manager
import java.awt.*;
public class Welcome extends JPanel
{ //Opens class
}//Closes class
=========================================================Might be a typo when you posted, but your DiveLog class is in package DiveLog, whereas your Welcome class is in package divelog (note the capitalization differences).
And even though they're in the same package, i'm always a fan of importing all the files you're going to need explicitly, such as
import divelog.Welcome
this applies to using the wildcard character too (as in, you shouldn't) to import files. Explicitly listing all imports allows you, and any other developer, to quickly see a list of all classes used. -
PLS-00907: cannot load library unit PREORDER.GLOBALS@PREORDER
Hi all, I am getting below error while compiling the package in oracle 11g.
SQL> select version from v$instance;
VERSION
11.2.0.3.0
SQL> !uname -a
SunOS ghb1s311 5.10 Generic_142900-13 sun4u sparc SUNW,Sun-Fire-V890
SQL> SELECT owner,
object_type,
object_name,
status
FROM dba_objects
WHERE status = 'INVALID'
ORDER BY owner, object_type, object_name;
2 3 4 5 6 7
OWNER OBJECT_TYPE OBJECT_NAME STATUS
KOMPIMP PACKAGE BODY IMPORT_NI_STAMMDATEN INVALID
SQL> alter package KOMPIMP.IMPORT_NI_STAMMDATEN compile body;
Warning: Package Body altered with compilation errors.
SQL> show error
Errors for PACKAGE BODY KOMPIMP.IMPORT_NI_STAMMDATEN:
LINE/COL ERROR
0/0 PLS-00907: cannot load library unit PREORDER.GLOBALS@PREORDER
(referenced by PREORDER.MANAGE_DATEN@PREORDER)
1201/5 PL/SQL: Statement ignored
SQL> select object_name,object_type,owner,status from dba_objects where object_name like 'GLOBALS';
OBJECT_NAME OBJECT_TYPE OWNER STATUS
GLOBALS PACKAGE KOMPIMP VALID
SQL> select object_name,object_type,owner,status from dba_objects where object_name like 'PREORDER';
OBJECT_NAME OBJECT_TYPE OWNER STATUS
PREORDER DATABASE LINK KOMPIMP VALID
These package(GLOBALS') is valid then also this is not compiling.
Please suggest to solve this problem.
Thanks in AdvanceHi
Without commenting on the specific HR packages, it sounds like you are causing invalidations when you recompile.
The first thing to do is to try to minimize the scope of each recompilation. So if the body of a package A is invalid, don't recompile the specification (which will invalidate any other package B that references a function, procedure, type or package variable in A). Just recompile the body (which afaik NEVER invalidates anything else).
alter package A compile body;If you have invalid package specs (which you do now) try to recompile them in dependency order. So if package (spec) A depends on (eg references a package (header) variable or type definition in) package B, then be dure to compile B before A.
In general, you should recompile invalid specifications first, then invalid package bodies.
The tricky objects are Views - a view can depend on a package spec (if the view SQL includes a reference to a package function) and a package spec or body can of course depend on a view. Good developers try to avoid circular dependencies! So our compilation order becomes:
* Views (unless dependent on packages)
* Package specs
* Views that depend on packages
* Package bodies
(Stand-alone stored procedures and functions are a pain in the neck, as they can depend on each other and on views, packages etc).
You can try using utlrp.sql (in rdvms/admin) which calls utl_recomp.recomp_parallel - but I don't know how good this is at sorting out dependencies.
HTH
Regards Nigel -
Ruby threads cannot be used in RubyCocoa without patches to the Ruby interp
Hi,
We are getting an error message while running the iTunes U work flow. We get this each time ithe work flow runs it seems. The error message is in the Podcast Producer error log. Here is the error message. /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/ge ms/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `run': Ruby threads cannot be used in RubyCocoa without patches to the Ruby interpreter
How can I do this update or fix this problem please?
Thank you,
ChipDo this:
http://hivelogic.com/articles/compiling-ruby-rubygems-and-rails-on-snow-leopard/
You may have to compile ruby...(/usr/local/bin/*) like I did. This worked for me.
If you already did this, everything will be groovy. Then if you are having trouble with mysql see this: http://hivelogic.com/articles/compiling-mysql-on-snow-leopard/ -
Ever since i downloaded OSX Mountain Lion, Express VPN no longer works properly for me. Even though it says I am connected, webpages refuse to load. However, connection speed is fine when its turned off. I cannot go on many websites without the VPN. My current location is Shanghai, China. OSX Mountain was installed this morning and everything worked fine until then. Is Express VPN not supported? What do i need to do in order to get it working again on my Macbook Pro (early 2011). I want to be able to go on websites such as Youtube, Facebook, Twitter, ect...
Hi,
I am having the same issue listed above on my new Mac Mini i just bought, I also contacted Express VPN support and got the same instructions with exception of the command to run in the utilities terminal. I tried the steps listed, and both commands (posted here, and sent to me directly by Express VPN support), and still unable to connect on my Mac Mini running OS X 10.8.2, but I am able to connect on my iPad and my MacBook which is running Mac OS X 10.6.8. Usually Express VPN is spot on with their customer support, but this is taking longer to get resolved. Here is the steps sent to me
Try doing the following to see if the problem gets resolved:
Please follow the instructions here: https://www.expressvpn.org/support/setting_dns_servers_mac_os
(should still be the same for Lion) and then add the following DNS servers: 8.8.8.8 & 208.67.222.220. After adding the DNS servers, please do the following steps as well:
Note: If you're connecting to your ISP via a PPPoE connection, then set the DNS servers on the PPPoE connection itself and then restart your computer for the DNS settings to take effect.
1. Click on Applications
2. Click on Utilities
3. Click on Terminal
4. Type the following command (without the quotes): "sudo killall -HUP mDNSResponder"
5. Press enter and then try reconnecting to the VPN.
If you're still unable to connect, please send us in the latest log files.
Hope this helps. Let us know how it goes. -
Ruby threads cannot be used in RubyCocoa without patches to the Ruby inter
I updated a working Podcast Server recently and now it doesn't work.
I'm getting:
Ruby threads cannot be used in RubyCocoa without patches to the Ruby interpreter
Any thoughts on how to fix it.You can safely ignore the "Ruby threads cannot be used in RubyCocoa without patches to the Ruby interpreter" message, it has nothing to do with the problems you are having.
Can you give us more details? Can you not start recordings, are recordings not beings processed, etc? -
[SOLVED] Cannot compile dvb drivers.
Hi,
I'm setting up a htpc media center based on arch with mythtv and xbmc. I've installed the base and base-devel packages and I need to compile the tbs-dvb-drivers to make my TBS 6280 DVB-T2 card work.
Unfortunately I cannot compile the drivers as the compile process seems to enter in a loop, it continues to show the following output:
TBS drivers configured for x86_64 platform.
make -C /home/media/tbs-dvb-drivers/src/linux-tbs-drivers/v4l
make[1]: ingresso nella directory "/home/media/tbs-dvb-drivers/src/linux-tbs-drivers/v4l"
scripts/make_makefile.pl
./scripts/make_kconfig.pl /lib/modules/3.11.6-1-ARCH/build /lib/modules/3.11.6-1-ARCH/build
Preparing to compile for kernel version 3.11.6
***WARNING:*** You do not have the full kernel sources installed.
This does not prevent you from building the v4l-dvb tree if you have the
kernel headers, but the full kernel source may be required in order to use
make menuconfig / xconfig / qconfig.
If you are experiencing problems building the v4l-dvb tree, please try
building against a vanilla kernel before reporting a bug.
Vanilla kernels are available at http://kernel.org.
On most distros, this will compile a newly downloaded kernel:
cp /boot/config-`uname -r` <your kernel dir>/.config
cd <your kernel dir>
make all modules_install install
Please see your distro's web site for instructions to build a new kernel.
./scripts/make_myconfig.pl
scripts/make_makefile.pl
./scripts/make_kconfig.pl /lib/modules/3.11.6-1-ARCH/build /lib/modules/3.11.6-1-ARCH/build
Preparing to compile for kernel version 3.11.6
***WARNING:*** You do not have the full kernel sources installed.
This does not prevent you from building the v4l-dvb tree if you have the
kernel headers, but the full kernel source may be required in order to use
make menuconfig / xconfig / qconfig.
If you are experiencing problems building the v4l-dvb tree, please try
building against a vanilla kernel before reporting a bug.
Vanilla kernels are available at http://kernel.org.
On most distros, this will compile a newly downloaded kernel:
cp /boot/config-`uname -r` <your kernel dir>/.config
cd <your kernel dir>
make all modules_install install
Please see your distro's web site for instructions to build a new kernel.
./scripts/make_myconfig.pl
scripts/make_makefile.pl
./scripts/make_kconfig.pl /lib/modules/3.11.6-1-ARCH/build /lib/modules/3.11.6-1-ARCH/build
Preparing to compile for kernel version 3.11.6
***WARNING:*** You do not have the full kernel sources installed.
This does not prevent you from building the v4l-dvb tree if you have the
kernel headers, but the full kernel source may be required in order to use
make menuconfig / xconfig / qconfig.
If you are experiencing problems building the v4l-dvb tree, please try
building against a vanilla kernel before reporting a bug.
Vanilla kernels are available at http://kernel.org.
On most distros, this will compile a newly downloaded kernel:
cp /boot/config-`uname -r` <your kernel dir>/.config
cd <your kernel dir>
make all modules_install install
Please see your distro's web site for instructions to build a new kernel.
./scripts/make_myconfig.pl
scripts/make_makefile.pl
./scripts/make_kconfig.pl /lib/modules/3.11.6-1-ARCH/build /lib/modules/3.11.6-1-ARCH/build
Preparing to compile for kernel version 3.11.6
I've waited up to 20 minutes, but the process seems stucked and the size of the folder doesn't grow up.
It's true that I have just the kernel-headers installed. In addition make continues to warn me that the edit date of several files is newer than the actual. Initially the date of the system was wrong (but not older than the file's) but now I've fixed it with the correct date in UTC. The problem persists.
I've also tried to compile from source directly but make enters into the same loop and gives me the same warnings.
Thank you in advance for any kind of help.
Regards.
Last edited by fasigno (2013-11-03 21:40:00)First make sure you have the core-devel package group installed. This is required to build AUR package in general.
Next, check to see if you have kernel-headers and v4l-utils installed? If not install them both and try again. I'm not sure if they are hard dependancies or not.
EDIT: Sorry, I see you wrote that you installed core-devel and kernel-headers already. It looks like you may have a time zone and hardware clock sync problem. If you just installed arch, make sure the timezone and locale are correct and havn't been altered since you first installed your system. If that's all good, then install the AUR package cleanly from scratch again.
Do you have NTP running?
Last edited by wdirksen (2013-11-03 20:36:18) -
Cannot compile arduino project
Hi guys,
I'm trying to work with arduino IDE, but I cannot compile even Blink example. I'm always seeing following error:
/usr/share/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../avr/bin/ld: cannot find -lm
Any ideas how I can fix it?Worked also for my Asus laptop!
CoolGenie wrote:
This works for me too. Thanks!
kircul wrote:
Solution was found in discussion in package arduino.
In short words:
You need to install package avr-gcc
Replace build-in avr-gcc compiler by same from package installed on previous step:
# cd /usr/share/arduino/hardware/tools/avr/bin
# mv ./avr-gcc ./avr-gcc-backup
# ln -s /usr/bin/avr-gcc ./
It works for me. -
Sccm 2012 r2 error setup cannot compile mof file tasksequenceprovider.mof
Am getting this error during SCCM 2012 R2 installation on the same server which has SQL 2012 with SP1. "setup cannot compile mof file tasksequenceprovider.mof". Any help?
Hi,
The following blog introduced a tool scans winodws module which may help find out the missing file.
http://blogs.technet.com/b/configurationmgr/archive/2010/01/05/the-configuration-manager-service-pack-install-guide.aspx -
PLS-00907: cannot load library unit
I have a problem with a stored procedure that runs via cron to insert records into a large partitioned table. This was running fine until a week back it stopped working.
The error it mentioned during execution is
PLS-00907: cannot load library unit
MET.CLINICAL_DATA (referenced by MET.INSERT_CLINICAL_DATA)
MET is the owner of the CLINICAL_DATA table and the INSERT_CLINICAL_DATA procedure. This procedure is run by a user called MET_USER who has an execute privilege on MET's INSERT_CLINICAL_DATA and its tables.
So what might have caused this error. I did spend atleast 2 hours looking in the metalink and as those articles mentioned, I am neither using a database link here nor I am calling a remote procedure.
Any thoughts?
Thanks355099,
No, not to my knowledge. But I do have another stored procedure that also runs everyday that has got DDL statements on the CLINICAL_DATA table. Some of the DDLs in that are ----
execute immediate 'alter table clinical_data drop partition part' || part_rec_l.id || ' update global indexes';
execute immediate 'alter table clinical_data split partition ' || 'last_values at ( ''' || (temp_day_l * ms_per_day_l)|| ''') into (partition part' || new_id_l
|| ', partition last_values) update global indexes';
execute immediate 'alter table clinical_data modify partition '|| 'part' || new_id_l || ' rebuild unusable local indexes';
execute immediate 'alter table clinical_data modify partition ' || 'last_values rebuild unusable local indexes';
Thank you -
I have a problem with my setup. My labview project has been running perfectly till today, when I cannot compile any project. My project works perfectly in another computer. Same with "simpler" projects that I have. I cannot compile. I have tried to compile an empty vi, but the problem is the same.
I decided to remove all labview components from my host computer. I removed everything from the host (NI-MAX/my-computer/sofware, all programs selected) and reinstalled Labview 2013. After doing that, the problem still happens. Attached you have a picture where you can check which error appears. It even happens with empty fpga VI.
I am running Labview 2013 in an Windows 7 64bit. Xilinx 14.4 13.0.0
My software package worked perfectly till today. Maybe something got corrupted...
Any suggestion? Thanks in advance
Pablo
Attachments:
Labview error before compilation.png 24 KBYou've re-installed NI things. Butm did you try re-installing the compiler as that sounds like the source of your problems?
For future reference, you should bring up FPGA in the subject, in the first sentence, or pretty much anywhere other than the end of your post. It helps others understand your issue to know what we are looking at from the start. -
Composing email in hotmail, cannot fill body of message
composing email in hotmail, cannot fill body of message
Using browser turn off HTML in preferences and use rich text.
Maybe you are looking for
-
Itunes 10.6.1.7 windows-restoring all devices fails! help!!
hi, i updated itunes to the latest(10.6.1.7), and wanted to restore my (unjailbroken, btw) iphone 4S on 5.1, to 5.1, but failed, giving me error 3194. i then tried restoring my (also not jailbroken) iphone 4 on 5.1 but it gave me the same error! im s
-
Hi Experts, I got a requirement to create AP report purchase in last 3 years. I need these fields in the BI report. VENDOR NAME1 PO Number PO Date Invoice Date Invoice Due Date Payment Date Days w/o payment Amount Invoice Number Can any one please gu
-
FIM 2010 Sync not running with status "Stopped-extension-dll-exception"
we are getting the following error for all our extensions when trying to run the Sync Operations. All extensions have similar errors with event ID 6159 generated in the application event log. They all started occurring after I deleted a attribute flo
-
Some websites are loading without images
I recently upgraded Firefox, and since doing so some sites have not been loading correctly. They load fine in other browsers, but in Firefox they show up in a strange format of bullet points and the information appears in a very simple, list format.
-
Connectivity in flex to oracle using java
hello, i have to connect flex 3 with java which uses oracle as a database.How i can connect flex with java.I am trying to access web services provided by java in flex.Is it possible? Please help me out. Thanks,