1. sql 預編譯的情況下怎麼用nextval
1、首先要有createsequence或者createanysequence許可權,createsequenceemp_sequenceINCREMENTBY1--每次加幾個STARTWITH1--從1開始計數NOMAXVALUE--不設置最大值NOCYCLE--一直累加,不循環CACHE10;2、插入到表中,INSE
2. SQL語句在PL/SQL編譯是從後往前執行,那真的執行的時候了大蝦解釋下
(8) SELECT (9) DISTINCT (11) <TOP_specification> <select_list>
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) WITH {CUBE | ROLLUP}
(7) HAVING <having_condition>
(10) ORDER BY <order_by_list>
這是執行順序
順序查詢:根據表的某個(些)欄位重排記錄,進行順序查詢時,要先排序以提高查詢效率。
順序查詢,會以主鍵作為默認的索引進行查詢,如果沒有主鍵和索引,就以第一個欄位,進行排序,進行查詢。
索引查詢:按照某個關鍵字(或其表達式)來建立記錄的邏輯順序。
索引查詢,已索引的順序為條件,找到索引對應的記錄,得到查詢的結果集。
先答這么多,明天我去問下DBA
3. sql語言用不用編譯
不用
將指令直接輸入其自帶的「查詢分析器」中運行就OK了
4. sql是解釋型語言還是編譯型語言
結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統。
結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同資料庫系統, 可以使用相同的結構化查詢語言作為數據輸入與管理的介面。結構化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。
SQL從功能上可以分為3部分:數據定義、數據操縱和數據控制。
SQL的核心部分相當於關系代數,但又具有關系代數所沒有的許多特點,如聚集、資料庫更新等。它是一個綜合的、通用的、功能極強的關系資料庫語言。其特點是:
1、數據描述、操縱、控制等功能一體化。
2、兩種使用方式,統一的語法結構。SQL有兩種使用方式。一是聯機交互使用,這種方式下的SQL實際上是作為自含型語言使用的。另一種方式是嵌入到某種高級程序設計語言(如C語言等)中去使用。前一種方式適合於非計算機專業人員使用,後一種方式適合於專業計算機人員使用。盡管使用方式不向,但所用語言的語法結構基本上是一致的。
3、高度非過程化。SQL是一種第四代語言(4GL),用戶只需要提出「干什麼」,無須具體指明「怎麼干」,像存取路徑選擇和具體處理操作等均由系統自動完成。
4、語言簡潔,易學易用。盡管SQL的功能很強,但語言十分簡潔,核心功能只用了9個動詞。SQL的語法接近英語口語,所以,用戶很容易學習和使用。
5. SQLSERVER 什麼時候重新編譯執行計劃
根據資料庫新狀態的不同,資料庫中的某些更改可能導致執行計劃效率降低或無效。SQL Server 將檢測到使執行計劃無效的更改,並將計劃標記為無效。此後,必須為執行查詢的下一個連接重新編譯新的計劃。導致計劃無效的情況包括:
對查詢所引用的表或視圖進行更改(ALTER TABLE 和 ALTER VIEW)。
對執行計劃所使用的任何索引進行更改。
對執行計劃所使用的統計信息進行更新,這些更新可能是從語句(如 UPDATE STATISTICS)中顯式生成,也可能是自動生成的。
刪除執行計劃所使用的索引。
顯式調用 sp_recompile。
對鍵的大量更改(其他用戶對由查詢引用的表使用 INSERT 或 DELETE 語句所產生的修改)。
對於帶觸發器的表,插入的或刪除的表內的行數顯著增長。
使用 WITH RECOMPILE 選項執行存儲過程。
為了使語句正確,或要獲得可能更快的查詢執行計劃,大多數都需要進行重新編譯。
在 SQL Server 2000 中,只要批處理中的語句導致重新編譯,就會重新編譯整個批處理,無論此批處理是通過存儲過程、觸發器、即席批查詢,還是通過預定義的語句進行提交。在 SQL Server 2005 和更高版本中,只會重新編譯批處理中導致重新編譯的語句。由於這種差異,SQL Server 2000 和更高版本中的重新編譯計數不可比較。另外,由於 SQL Server 2005 和更高版本擴展了功能集,因此它們具有更多類型的重新編譯。
語句級重新編譯有助於提高性能,因為在大多數情況下,只有少數語句導致了重新編譯並造成相關損失(指 CPU 時間和鎖)。因此,避免了批處理中其他不必重新編譯的語句的這些損失。
SQL Server ProfilerSP:Recompile 跟蹤事件報告語句級重新編譯。此跟蹤事件在 SQL Server 2000 中僅報告批處理重新編譯。此外,將填充此事件的 TextData 列。因此,已不再需要 SQL Server 2000 中必須跟蹤 SP:StmtStarting 或 SP:StmtCompleted 以獲取導致重新編譯的 Transact-SQL 文本的做法。
跟蹤事件 SQL:StmtRecompile 報告語句級重新編譯。此跟蹤事件可用於跟蹤和調試重新編譯。SP:Recompile 僅針對存儲過程和觸發器生成,而SQL:StmtRecompile 則針對存儲過程、觸發器、即席批查詢、使用 sp_executesql 執行的批處理、已准備的查詢和動態 SQL 生成。
SP:Recompile 和 SQL:StmtRecompile 的 EventSubClass 列都包含一個整數代碼,用以指明重新編譯的原因。
6. java有沒有方法將硬編譯的sql直接轉換成預編譯類型的sql
你說的是防止sql注入的方式嗎
「select * from test where name=?」; 參數是傳入的 比直接傳值要好 這樣可以防止sql注入漏洞
7. 什麼是SQL的編譯環境
sql語句運行環境
像查詢分析器
8. 為什麼我PL/SQL工具中編譯的SQL語句,不能顯示中文
修改資料庫的字元集。
在注冊表裡面修改為中文簡體,就可以讀出中文,但是要小心可能會造成Oracle出錯。
或者在SQL Plus中設置alter session set nls_language='SIMPLIFIED CHINESE'
9. 怎麼查看pl/sql的編譯錯誤
可用第三方工具檢查錯誤。 如以下存儲過程: 其中第六行故意少寫了一個分號。 然後執行後,會提示完成,這時可以去左邊的樹中找到這個存儲過程,顯示是有個紅叉的。 這時,可以右鍵,選擇編輯。 然後打開頁面的最下方會顯示如下信息。 此時滑鼠雙擊信息的那一行,會在上方存儲過程中以特殊顏色顯示,這就說明,有特殊顏色的位置有錯誤,可以根據ORA-00933的錯誤號查詢錯誤原因,並加以修改。 現在,如果可以後邊的逗號補上,點執行,然後,下邊會顯示成功編譯且左邊的樹紅叉消除。