存盤程序如下:
CREATE OR REPLACE PROCEDURE tr_TEST1 IS
V_SQL VARCHAR2(20000);
CURSOR CURSOR_1 IS SELECT DISTINCT T.預約日期 FROM tr_tmp T ORDER BY 預約日期;
BEGIN
V_SQL := 'SELECT 區域,中心,工單量';
FOR V_預約日期 IN CURSOR_1
LOOP
V_SQL := V_SQL || ',' || 'SUM(DECODE(預約日期,''' || v_預約日期.預約日期 ||
''',工單量,0)) AS ' || V_預約日期.預約日期;
END LOOP;
V_SQL := V_SQL || ' FROM tr_test1 GROUP BY 區域,中心,工單量 ORDER BY 區域,中心,工單量';
V_SQL := 'CREATE OR REPLACE VIEW RESULT AS '|| V_SQL;
EXECUTE IMMEDIATE V_SQL;
COMMIT;
END tr_TEST1;
編譯成功,但是執行時提示找不到FROM關鍵字,哪里出了問題啊?
uj5u.com熱心網友回復:
V_SQL := 'SELECT 區域,中心,工單量';
-- 加一個逗號
V_SQL := 'SELECT 區域,中心,工單量,';
uj5u.com熱心網友回復:
路過!
uj5u.com熱心網友回復:
還是出錯了。。。
uj5u.com熱心網友回復:
tr_tmp , tr_test1 兩張表結構,和資料都貼上來;
具體什么錯,你得說啊。。。
uj5u.com熱心網友回復:
怎么傳不了圖片,執行:begin
tr_test1;
end;
提示缺失運算式
uj5u.com熱心網友回復:
存盤程序如下:
CREATE OR REPLACE PROCEDURE tr_TEST1 IS
V_SQL VARCHAR2(20000);
CURSOR CURSOR_1 IS SELECT DISTINCT T.預約日期 FROM tr_tmp T ORDER BY 預約日期;
BEGIN
V_SQL := 'SELECT 區域,中心,工單量';
FOR V_預約日期 IN CURSOR_1
LOOP
V_SQL := V_SQL || ',' || 'SUM(DECODE(預約日期,''' || v_預約日期.預約日期 ||
''',工單量,0)) AS ' || V_預約日期.預約日期;
END LOOP;
V_SQL := V_SQL || ' FROM tr_test1 GROUP BY 區域,中心,工單量 ORDER BY 區域,中心,工單量';
V_SQL := 'CREATE OR REPLACE VIEW RESULT AS '|| V_SQL;
EXECUTE IMMEDIATE V_SQL;
COMMIT;
END tr_TEST1;
編譯成功,但是執行時提示找不到FROM關鍵字,哪里出了問題啊?
應該是列別名問題
--select hiredate as 20161201 from emp a; --不行
--select hiredate as '20161201' from emp a; --不行
select hiredate as "20161201" from emp a; --可以
-- ''',工單量,0)) AS ' || V_預約日期.預約日期;
--加上雙引號 修改成如下試試
''',工單量,0)) AS "' || V_預約日期.預約日期||'"';
uj5u.com熱心網友回復:
修改后:
CREATE OR REPLACE PROCEDURE tr_TEST1 IS
V_SQL VARCHAR2(20000);
CURSOR CURSOR_1 IS SELECT DISTINCT T.預約日期 FROM tr_tmp T ORDER BY 預約日期;
BEGIN
V_SQL := 'SELECT 區域,中心';
FOR V_預約日期 IN CURSOR_1
LOOP
V_SQL := V_SQL || ',' || 'SUM(DECODE(預約日期,''' || v_預約日期.預約日期 ||
''',工單量,0)) AS "' || V_預約日期.預約日期 ||'"';
END LOOP;
V_SQL := V_SQL || ' FROM tr_test1 GROUP BY 區域,中心 ORDER BY 區域,中心';
V_SQL := 'CREATE OR REPLACE VIEW RESULT AS '|| V_SQL;
EXECUTE IMMEDIATE V_SQL;
END tr_test1;
修改后:
CREATE OR REPLACE PROCEDURE tr_TEST1 IS
V_SQL VARCHAR2(20000);
CURSOR CURSOR_1 IS SELECT DISTINCT T.預約日期 FROM tr_tmp T ORDER BY 預約日期;
BEGIN
V_SQL := 'SELECT 區域,中心';
FOR V_預約日期 IN CURSOR_1
LOOP
V_SQL := V_SQL || ',' || 'SUM(DECODE(預約日期,''' || v_預約日期.預約日期 ||
''',工單量,0)) AS "' || V_預約日期.預約日期 ||'"';
END LOOP;
V_SQL := V_SQL || ' FROM tr_test1 GROUP BY 區域,中心 ORDER BY 區域,中心';
V_SQL := 'CREATE OR REPLACE VIEW RESULT AS '|| V_SQL;
EXECUTE IMMEDIATE V_SQL;
END tr_test1;
修改后:
CREATE OR REPLACE PROCEDURE tr_TEST1 IS
V_SQL VARCHAR2(20000);
CURSOR CURSOR_1 IS SELECT DISTINCT T.預約日期 FROM tr_tmp T ORDER BY 預約日期;
BEGIN
V_SQL := 'SELECT 區域,中心';
FOR V_預約日期 IN CURSOR_1
LOOP
V_SQL := V_SQL || ',' || 'SUM(DECODE(預約日期,''' || v_預約日期.預約日期 ||
''',工單量,0)) AS "' || V_預約日期.預約日期 ||'"';
END LOOP;
V_SQL := V_SQL || ' FROM tr_test1 GROUP BY 區域,中心 ORDER BY 區域,中心';
V_SQL := 'CREATE OR REPLACE VIEW RESULT AS '|| V_SQL;
EXECUTE IMMEDIATE V_SQL;
END tr_test1;
修改后:
CREATE OR REPLACE PROCEDURE tr_TEST1 IS
V_SQL VARCHAR2(20000);
CURSOR CURSOR_1 IS SELECT DISTINCT T.預約日期 FROM tr_tmp T ORDER BY 預約日期;
BEGIN
V_SQL := 'SELECT 區域,中心';
FOR V_預約日期 IN CURSOR_1
LOOP
V_SQL := V_SQL || ',' || 'SUM(DECODE(預約日期,''' || v_預約日期.預約日期 ||
''',工單量,0)) AS "' || V_預約日期.預約日期 ||'"';
END LOOP;
V_SQL := V_SQL || ' FROM tr_test1 GROUP BY 區域,中心 ORDER BY 區域,中心';
V_SQL := 'CREATE OR REPLACE VIEW RESULT AS '|| V_SQL;
EXECUTE IMMEDIATE V_SQL;
END tr_test1;
**桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......
我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......
關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......