CREATE OR REPLACE PROCEDURE "Procedure_AccessStatistic" AS
*
第 2 行出现错误:
ORA-00933: SQL command not properly ended
SP2-0734: 未知的命令开头 "TableNames..." - 忽略了剩余的行。
SP2-0734: 未知的命令开头 "Counts num..." - 忽略了剩余的行。
SELECT REPLACE(to_char(sysdate,'YYYY-MM-DD'),'-','_') INTO Temp FROM DUAL;
*
第 2 行出现错误:
ORA-06550: line 2, column 61:
PLS-00201: identifier 'TEMP' must be declared
ORA-06550: line 2, column 66:
PL/SQL: ORA-00904: : invalid identifier
ORA-06550: line 2, column 2:
PL/SQL: SQL Statement ignored
ORA-06550: line 3, column 2:
PLS-00201: identifier 'TABLENAMES' must be declared
ORA-06550: line 3, column 2:
PL/SQL: Statement ignored
ORA-06550: line 4, column 66:
PL/SQL: ORA-00904: "TABLENAMES": invalid identifier
ORA-06550: line 4, column 2:
PL/SQL: SQL Statement ignored
ORA-06550: line 5, column 6:
PLS-00201: identifier 'COUNTS' must be declared
ORA-06550: line 5, column 2:
PL/SQL: Statement ignored
*
第 2 行出现错误:
ORA-00933: SQL command not properly ended
SP2-0734: 未知的命令开头 "TableNames..." - 忽略了剩余的行。
SP2-0734: 未知的命令开头 "Counts num..." - 忽略了剩余的行。
SELECT REPLACE(to_char(sysdate,'YYYY-MM-DD'),'-','_') INTO Temp FROM DUAL;
*
第 2 行出现错误:
ORA-06550: line 2, column 61:
PLS-00201: identifier 'TEMP' must be declared
ORA-06550: line 2, column 66:
PL/SQL: ORA-00904: : invalid identifier
ORA-06550: line 2, column 2:
PL/SQL: SQL Statement ignored
ORA-06550: line 3, column 2:
PLS-00201: identifier 'TABLENAMES' must be declared
ORA-06550: line 3, column 2:
PL/SQL: Statement ignored
ORA-06550: line 4, column 66:
PL/SQL: ORA-00904: "TABLENAMES": invalid identifier
ORA-06550: line 4, column 2:
PL/SQL: SQL Statement ignored
ORA-06550: line 5, column 6:
PLS-00201: identifier 'COUNTS' must be declared
ORA-06550: line 5, column 2:
PL/SQL: Statement ignored
Temp varchar2(20);
TableNames varchar2(50);
Counts number;
BEGIN
SELECT REPLACE(to_char(sysdate,'YYYY-MM-DD'),'-','_') INTO Temp FROM DUAL;
TableNames := 'Access_tb_'|| Temp ;
SELECT nvl(COUNT(*),0) INTO Counts FROM user_tables WHERE table_name = TableNames;
IF Counts > 0 THEN
dbms_output.put_line(TableNames);
END IF;
END Procedure_AccessStatistic;
2 Temp varchar2(20);
3 TableNames varchar2(50);
4 Counts number;
5 BEGIN
6 SELECT REPLACE(to_char(sysdate,'YYYY-MM-DD'),'-','_') INTO Temp FROM DUAL;
7 TableNames := 'Access_tb_'|| Temp ;
8 SELECT nvl(COUNT(*),0) INTO Counts FROM user_tables WHERE table_name = TableNames;
9 IF Counts > 0 THEN
10 dbms_output.put_line(TableNames);
11 END IF;
12 END Procedure_AccessStatistic;
13 /Procedure created.
报错误吗?
Temp varchar2(20);
TableNames varchar2(50);
Counts number;
BEGIN
SELECT REPLACE(to_char(sysdate, 'YYYY-MM-DD'), '-', '_')
INTO Temp
FROM DUAL;
TableNames := 'Access_tb_' || Temp;
SELECT COUNT(*)
INTO Counts
FROM user_tables
WHERE table_name = TableNames;
IF Counts > 0 THEN
dbms_output.put_line(TableNames);
END IF;
END;这样就可以了!!