在課堂上,我們被要求命名幾個PL/SQL函數並說明它們的用法。有人提到了CREATE FUNCTION,我注意到Oracle將它標記爲聲明而不是函數。函數和語句之間的區別
我無法對兩者之間的差異給出很好的答案。我認爲一個聲明更像是一個聲明性工具,它指定程序要完成什麼,而函數似乎更具有過程性,我們在CREATE FUNCTION語句中定義了一個新函數的過程。
區分似乎更清晰的東西像一個SELECT語句,有人可以幫助明確界定兩者之間?
在課堂上,我們被要求命名幾個PL/SQL函數並說明它們的用法。有人提到了CREATE FUNCTION,我注意到Oracle將它標記爲聲明而不是函數。函數和語句之間的區別
我無法對兩者之間的差異給出很好的答案。我認爲一個聲明更像是一個聲明性工具,它指定程序要完成什麼,而函數似乎更具有過程性,我們在CREATE FUNCTION語句中定義了一個新函數的過程。
區分似乎更清晰的東西像一個SELECT語句,有人可以幫助明確界定兩者之間?
語句是一段執行的代碼。這是一個命令。它做了一些事情。例如:
打印的「Hello World」
函數是的,你用參數調用代碼塊,它返回一個值(即使該值是不確定的)。例如:
函數(){返回* 2}
單詞 「語句」 在SQL和PL/SQL兩種不同的含義。
在狹義的技術意義上,CREATE FUNCTION
是一種SQL語句,而CREATE FUNCTION
包含PL/SQL語句。
在更一般的意義上,一個SQL語句是聲明的代碼,告訴數據庫「什麼是真正的」或「如何做」「什麼做」,沒有詳細說明。函數或任何PL/SQL塊是命令性的代碼,它告訴數據庫到底是「要做什麼」。聲明式SQL通常比命令式PL/SQL更簡單,更快,因此通常最好是在SQL中完成大部分工作,並將它與PL/SQL結合在一起。
SQL具有約170的命令(如由V$SQLCOMMAND
定義),組織成約31語句類型,組織成the below 6 categories。該CREATE FUNCTION
命令是在DDL
類別CREATE
語句類型。該分類方案並非從數據庫和手冊中完全清楚,但我已將其用於thoroughly classify all SQL statements。
Data Definition Language (DDL) Statements Data Manipulation Language (DML) Statements Transaction Control Statements Session Control Statements System Control Statement Embedded SQL Statements
在PL/SQL,最blocks是語句序列。這些語句可以是一個賦值,循環,取,塊等
爲了使事情變得更加混亂,在12C SQL語句可以包含PL/SQL語句:
with function f return number is begin return 1; end; select f from dual;
CREATE FUNCTION
是一個語句。該功能本身是FUNCTION
。運行創建函數的語句允許您訪問函數。
在一般情況下,如果你在數據庫中創建任何東西,你正在使用的語句(尤其是數據定義語言(DDL)語句)。您創建的項目,無論是桌子,功能,包裝等,則可以在以後的語句引用。
謝謝你,你可以說有一個什麼「功能」如何比SQL語句不同。 –