我正在使用Oracle SQL Developer進行文本挖掘:ODMiner ..我將數據「WEBLOG」導入到表中。此博客數據由用戶活動,日期,時間,url等組成。我採取的第一步是使用函數將數據表中的日期和時間轉換爲表示自01-01-1990以來40分鐘的數字。我把它除以2400(40分鐘秒)。主要目的是爲會議制定一個時間表。 我用下面的代碼,創建或替換函數錯誤
CREATE OR REPLACE FUNCTION ssnDate(
DATE IN VARCHAR2 DEFAULT 03-01-18,
TIME IN VARCHAR2
) RETURN NUMBER
AS
BEGIN
RETURN TRUNC((to_date(DATE||' '||TIME, 'DD-MM-YY HH:MM:SS')- to_date('01-JAN- 1990','DD-MON-YYYY')) * (86400/2400);
END ssnDate;
這正是出現在日誌中運行該語句後,
FUNCTION ssnDate compiled
Warning: execution completed with warning
在此之後,我試圖創建一個視圖轉換日期和時間的之前創建的ssnDate,並將CS_URI_STEM(它是訪問的資源)和CS_URI_QUERY(客戶端正在嘗試執行的查詢(如果有的話))連接到名爲WEB_LINK的新字段中。
這是所使用的代碼,
CREATE OR REPLACE VIEW WEBLOG_VIEWS("C_IP", "WEB_LINK", "CS_USER_AGENT", "SESSION")
AS
SELECT ssnDate(LOG_DATE, LOG_TIME) AS 'SESSION',
C_IP,
CS_USER_AGENT,
(CS_URI_STEM||'?'||CS_URI_QUERY) AS WEB_LINK
FROM WEBLOG;
從此我得到了以下錯誤
現在..
Error starting at line 1 in command:
CREATE OR REPLACE VIEW WEBLOG_VIEWS("C_IP", "WEB_LINK", "CS_USER_AGENT", "SESSION")
AS
SELECT ssnDate(LOG_DATE, LOG_TIME) AS 'SESSION',
C_IP,
CS_USER_AGENT,
(CS_URI_STEM||'?'||CS_URI_QUERY) AS WEB_LINK
FROM WEBLOG
Error at Command Line:3 Column:38
Error report:
SQL Error: ORA-00923: FROM keyword not found where expected
00923. 00000 - "FROM keyword not found where expected"
*Cause:
*Action:
我不明白,我要和這個去錯了。這是數據準備階段,需要我在應用建模技術或算法之前準備數據。下一步將根據會話時間,ip和每個會話的用戶代理以及訪問的web_links字段對數據進行分組該會話中的用戶。
我真的很感激任何有關輸入錯誤的地方或任何解決方案!在此行
我想你的建議。我得到了下面的錯誤,錯誤在命令行:4列:7 錯誤報告: SQL錯誤:ORA-06575:包裝或功能SSNDATE處於無效狀態 06575. 00000 - 「包或函數%s是在無效狀態」 *原因:SQL語句引用一個PL/SQL函數是在 無效狀態。 Oracle試圖編譯該函數,但 檢測到錯誤。 *操作:檢查SQL語句和PL/SQL函數的語法 錯誤或錯誤分配,或丟失,特權的 引用的對象。 – user1874311
oK,我以另一種方式嘗試了它併成功運行。 CREATE OR REPLACE FUNCTION ssnDate( P_DATE IN VARCHAR2 DEFAULT '03 -01-18' , P_TIME IN VARCHAR2 )RETURN NUMBER AS BEGIN RETURN TO_NUMBER(TRUNC(TO_DATE(p_date || p_time,「DD-MM-YY HH24:MI:SS ')) - TO_DATE('01 -JAN-1990', 'DD-MON-YYYY'))* 36; END;但第二個錯誤仍然顯示! – user1874311