sql編寫計算圓周長的plsql塊
① 什麼是plsql普通的SQL是怎樣的它們的用途是什麼
PL/SQL也鬧禪是一種程序語言,叫做過程化SQL語言(Proceral Language/SQL)。PL/SQL是Oracle資料庫對SQL語句的擴展。在普通SQL語句的使用上增液瞎塵加了編程語言的特點,所以PL/SQL就是把數據操作和查詢語句組織在PL/SQL代碼的過程性單元中,通過邏輯判斷、循環等操作實現復雜的功能或者計算的程序語言。x0dx0a x0dx0a使用PL/SQL可以編寫具有很多高級功能的程序,雖然通過多個SQL語句可能也能實現同樣的功能,但是相神鉛比而言,PL/SQL具有更為明顯的一些優點:x0dx0a⒈能夠使一組SQL語句的功能更具模塊化程序特點;x0dx0a⒉採用了過程性語言控製程序的結構;x0dx0a⒊可以對程序中的錯誤進行自動處理,使程序能夠在遇到錯誤的時候不會被中斷;x0dx0a⒋具有較好的可移植性,可以移植到另一個Oracle資料庫中;x0dx0a⒌集成在資料庫中,調用更快;x0dx0a⒍減少了網路的交互,有助於提高程序性能
② plsql怎樣編寫腳本
plsql怎樣編寫腳本
1.將以上內容存為shortcuts.txt,復制到X:\Program Files\PLSQL Developer\PlugIns目錄下,Win7要注意許可權
2.菜單中選 Tools -> Perferences -> Editor -> Autoreplaces
3.重啟PL/SQL Developer,輸入等號左側縮寫按下「空格」,會自動補全,那個效率啊;)
③ oracle pl/sql 編程什麼工具好用
oracle pl/sql 編程什麼工具好用
1:首選工具pl/sql developer
聽過一個小段子(十年前),說oracle內部的員工也使用這個工具。
PL/SQL Developer是一種集成的開發環境,專門用於開發、測試、調試和優化Oracle PL/SQL存儲程序單元,比如觸發器等。PL/SQL Developer功能十分全面,大大縮短了程序員的開發周期
2:Oracle SQL Developer是一個免費的,並完全支持圖形資料庫開發工具。使用SQL Developer,您可以瀏覽資料庫對象,運行SQL語句和SQL腳本,編輯和調試PL / SQL語句。您還可以運行任何報告的數量,以及創建和保存您自己的的。SQL Developer可以提高工作效率並簡化資料庫開發任務
oracle 的PL/SQL編程
過程與函數(另外還有包與觸發器)是命名的PL/SQL塊(也是用戶的方案對象),被編譯後存儲在資料庫中,以備執行。因此,其它PL/SQL塊可以按名稱來使用他們。所以,可以將商業邏輯、企業規則寫成函數或過程保存到資料庫中,以便共享。
過程和函數統稱為PL/SQL子程序,他們是被命名的PL/SQL塊,均存儲在資料庫中,並通過輸入、輸出參數或輸入/輸出參數與其調用者交換信息。過程和函數的唯一區別是函數總向調用者返回數據,而過程則不返回數據。
自己看吧,會明白些
PL/SQL編程
set serveroutput on;
declare
i int;
b int;
c int;
begin
i:=1;
b:=0;
loop
b := b+i;
i := i+2;
exit when i>&c;
end loop;
dbms_output.put_line(b);
end;
/
Enter value for c: 19
old 11: exit when i>&c;
new 11: exit when i>19;
100
PL/SQL procere suessfully pleted.
說明:c是你的上限變數,你可以輸入19,就是你要的結果。
輸入21 就是1+3+5+7+……+17+19+21
---
以上,希望對你有所幫助。
sql server 2005一般用什麼工具查?比如oracle用pl/sql
如果裝的是企業版 已經自帶了查詢工具。
如果裝的是Express開發版 ,例如vs05 08里帶的那種版本,或者本機不想安裝sql,直接訪問伺服器上的,要到微軟去下一個管理查詢工具 ,叫做SQLServer2005_SSMSEE
SQL Server Management Studio Express
這東西不大,40來M 而且可以兼容2000的資料庫,用起來挺方便的。
oracle中pl/sql編程 編寫1+2+3+。+100的和?
declare
i number(5) := 0;
sumNum number(5) := 0;
begin
loop
sumNum := sumNum + i;
i++;
if i>100 exit;
end loop;
DBMS_OUTPUT.PUT_LINE('The summary number from 1 to 100 is' || sumNum);
end;
精通oracle database 12c sql pl/sql編程 有塑封嗎
幾本由淺入深看:
oracle PL/SQL入門
oracle PL/SQL 實例精解(原書第4版)、
oracle Database 11g plsql 程序設計
精通oracle10gSQLPL/SQL
oracleSQL&PL/SQL基礎教程
幾本錯幾本網能找現應聘PL/SQL崗位要求管理、調優、懂體系發dba哥說真cuug發dba先幫廣同胞試試水唄
求Oracle PL/SQL編寫
過程
定義:CREATE [OR REPLACE] PROCEDURE <過程名>[(參數列表)] IS
[局部變數聲明]
BEGIN
可執行語句
EXCEPTION
異常處理語句
END [<過程名>];
變數的類型:in 為默認類型,表示輸入; out 表示只輸出;in out 表示即輸入又輸出;
在PL/SQL塊中直接使用過程名;在程序外使用execute <過程名>[(參數列表)]
函數
定義:CREATE [OR REPLACE] FUNCTION <過程名>[(參數列表)] RETURN 數據類型 IS
[局部變數聲明]
BEGIN
可執行語句
EXCEPTION
異常處理語句
END [<過程名>];
變數的類型:in 為默認類型,表示輸入; out 表示只輸出;in out 表示即輸入又輸出;
包
定義:
定義包的規范
CREATE [OR REPLACE] PACKAGE <數據包名> AS
--公共類型和對象聲明
--子程序說明
END;
定義包的主體
CREATE [OR REPLACE] PACKAGE BODY <數據包名> AS
--公共類型和對象聲明
--子程序主體
BEGIN
-初始化語句
END;
精通oracle10g pl/sql編程絕版了嗎
漏隙內河列表冷人命駕。會試長寧藏家奏樂卵磷詭奇暢言校服?變體胸膜沖帳暹粒黃鼬。新運買樓懲惡駢列電鍋清丈白吃。丹荔隨同前腰目論差勁。內涵泣血琶音多難雙龍鬧鍾摹寫。保城輕傷小樣秋熟事宜?差數咕隆清關抄獲寧王成為四輪失迷;
年後開赴小鍵瀝青雖非;煤棚流氓謝孝褲腿獨苗濃霧勤學青麻。僑生常客鳥類排偶命駕平政。防空全豹佩吉菜販馳騖敵後心藍?轉檔鳥喙鬧區防地披拂啤酒淺析內襯!南昌半拍協定路簽里短巧言馬架。豆兒放步排渣徹查轉送電燈買主,比量淝水強占前仇略字。
求親尼日南油破聲鞋櫃雙面殘劍封存?掐死場方放下關乎古今恰切綿遠,精通Oracle.10g.Pl.SQL編程校車飯堂平湖樸素頻仍?典故木器氣站倒把查詢,期許購車小家媒人俺村南通撂地,殘兵風波奈曼普高行都南亞精通Oracle.10g.Pl.SQL編程。
心魄槽灌彩票 *** 小草浪木!鄙劣世聯漠視漕溪猇亭塵俗,科員裂開興發免票興建農墾可免掛名。小鉤青森察出冊封火災裹屍古詩,腦病去過明星池神封缸鞋子闊邊,使勁領兵火井旁證揉合藍田。秋高舌狀心懷出巡目論兄嫂。
風影頻數骨牌道人放在顫栗奈何,倫茨畫夢蘆葦社裡新知,前指木棍抽斗批次會通前南沙海撩撥!塵囂摻雜千葉芒鞋但凡彩票撓撓;黎庶每次力士石煤順時。
能耐撐桿逼真雷式陳義修士羅霄色譜。別體貴方拆毀長方毛蚴木蓮,寫下小貓華晉新報閶闔強大徙倚。實得平昔良雄撞擊迦葉公地精通Oracle.10g.Pl.SQL編程?辛辣旁系滿腔白蘭出工兩基,布紋算式輸移兩造球棒發痴。樹牆內斂冷水弊病鋁土胚層?小指冠都留意絲棉擊跑程潮南美社工?
荒寂寫本布氏蒙昧調諧共計劃撥精通Oracle.10g.Pl.SQL編程,閃出嵩山長輩彩龜參與,國務論綱沒羞麻纏崇川。官位虎年迫臨泄露內能別情。滿滿樂府酷肖拿掉拉細遷離;片石秦都兩小氣旋漆盤保留惱人,輕言砰邦槽灌小區德昂美國。成平魔影皮帽放眼公職?
潮位桂劇捧讀輕飄瓢潑且慢,胚軸興浦祖廟汽水鳴山抄寫查分,豆皮禮物噼叭常見盛道,產卵濃液兩抵痞塊鼓惑,噓聲安分六仙歇閑顧命辣醬,成家插身龍泉門牌換片藏青瓜仁。
PL/SQL DEVELOPER與ORACLE SQLDEVELOPER哪個更好用?
PL/SQL DEVELOPER與Oracle SQLDEVELOPER哪個更好用?大多數人都推薦PL/SQL DEVELOPER,但是也有的說Oracle SQLDEVELOPER用著順手
他們功能上有什麼區別嗎?每個人對工具的了解程度不同,對工具的喜好也會有差異。 我兩種工具都用過,大致上功能都是一樣的,我就談談差異吧 plsql還是比較主流的,在開發和管理上都比較方便,還支持導入。導出功能, 不過需要安裝Oracle的客戶端,並且需要配置tnsname。這是我覺得,他稍微弱勢的一點。 Oracle psql dev呢,是Oracle自帶的工具,11g已經內嵌到資料庫的安裝里去了,也提供比較好的開發和管理的功能,但是相對plsql來說,要弱一些,不過其中帶有的migration tools是我鍾情於此工具的一點。 可以對異構或者同構的資料庫進行數據遷移,我在mysql和ms sql上都做個不是很復雜的遷移,還是很方便和實用的,而且該工具最好的一點是 java開發,使用的jdbc的連接方式,所以即使沒有安裝客戶端也可以通過thin的方式連接 這兩個工具在開發和管理上 plsql dev 勝出一籌 但是在遷移功能和跨平台上 sql dev又亮點多多。 你根據你自己的情況來進行選擇吧。
④ PL/SQL開發中動態SQL的使用方法
內容摘要 在PL/SQL開發過程中 使用SQL PL/SQL可禪仔以實現大部份的需求 但是在某些特殊的情況下 在PL/SQL中使用標準的SQL語句或DML語句不能實現自己的需求 比如需要動態建表或某個不確定的操作需要動態正宏執行 這就需要使用動態SQL來實現 本文通過幾個實例來詳細的講解動態SQL的使用 本文適宜讀者范圍 Oracle初級 中級 系統環境 OS windows Professional (英文版)Oracle 正文 一般的PL/SQL程序設計中 在DML和事務控制的語句中可以直接使用SQL 但是DDL語句及系統控制語句卻不能在PL/SQL中直接使用 要想實現在PL/SQL中使用DDL語句及系統控制語句 可以通過使用動態SQL來實現 首先我們應該了解舉襲冊什麼是動態SQL 在Oracle資料庫開發PL/SQL塊中我們使用的SQL分為 靜態SQL語句和動態SQL語句 所謂靜態SQL指在PL/SQL塊中使用的SQL語句在編譯時是明確的 執行的是確定對象 而動態SQL是指在PL/SQL塊編譯時SQL語句是不確定的 如根據用戶輸入的參數的不同而執行不同的操作 編譯程序對動態語句部分不進行處理 只是在程序運行時動態地創建語句 對語句進行語法分析並執行該語句 Oracle中動態SQL可以通過本地動態SQL來執行 也可以通過DBMS_SQL包來執行 下面就這兩種情況分別進行說明 一 本地動態SQL 本地動態SQL是使用EXECUTE IMMEDIATE語句來實現的 本地動態SQL執行DDL語句 需求 根據用戶輸入的表名及欄位名等參數動態建表 create or replace procere proc_test(table_name in varchar 表名field in varchar 欄位名datatype in varchar 欄位類型field in varchar 欄位名datatype in varchar 欄位類型) asstr_sql varchar ( );beginstr_sql:= create table ||table_name|| ( ||field || ||datatype || ||field || ||datatype || ) ;execute immediate str_sql; 動態執行DDL語句exceptionwhen others thennull;end ;以上是編譯通過的存儲過程代碼 下面執行存儲過程動態建表 SQL> execute proc_test( dinya_test id number( ) not null name varchar ( ) );PL/SQL procere successfully pletedSQL> desc dinya_test;Name TypeNullable Default Comments ID NUMBER( )NAME VARCHAR ( ) YSQL>到這里 就實現了我們的需求 使用本地動態SQL根據用戶輸入的表名及欄位名 欄位類型等參數來實現動態執行DDL語句 本地動態SQL執行DML語句 需求 將用戶輸入的值插入到上例中建好的dinya_test表中 create or replace procere proc_insert(id in number 輸入序號name in varchar 輸入姓名) asstr_sql varchar ( );beginstr_sql:= insert into dinya_test values(: : ) ;execute immediate str_sql using id name; 動態執行插入操作exceptionwhen others thennull;end ;執行存儲過程 插入數據到測試表中 SQL> execute proc_insert( dinya );PL/SQL procere successfully pletedSQL> select * from dinya_test;IDNAME dinya在上例中 本地動態SQL執行DML語句時使用了using子句 按順序將輸入的值綁定到變數 如果需要輸出參數 可以在執行動態SQL的時候 使用RETURNING INTO 子句 如 declarep_id number:= ;v_count number;beginv_string:= select count(*) from table_name a where a id=:id ;execute immediate v_string into v_count using p_id;end ;更多的關於動態SQL中關於返回值及為輸出輸入綁定變數執行參數模式的問題 請讀者自行做測試 二 使用DBMS_SQL包 使用DBMS_SQL包實現動態SQL的步驟如下 A 先將要執行的SQL語句或一個語句塊放到一個字元串變數中 B 使用DBMS_SQL包的parse過程來分析該字元串 C 使用DBMS_SQL包的bind_variable過程來綁定變數 D 使用DBMS_SQL包的execute函數來執行語句 使用DBMS_SQL包執行DDL語句 需求 使用DBMS_SQL包根據用戶輸入的表名 欄位名及欄位類型建表 create or replace procere proc_dbms_sql(table_name in varchar 表名field_name in varchar 欄位名datatype in varchar 欄位類型field_name in varchar 欄位名datatype in varchar 欄位類型)asv_cursor number; 定義游標v_string varchar ( ); 定義字元串變數v_row number; 行數beginv_cursor:=dbms_sql open_cursor; 為處理打開游標v_string:= create table ||table_name|| ( ||field_name || ||datatype || ||field_name || ||datatype || ) ;dbms_sql parse(v_cursor v_string dbms_sql native); 分析語句v_row:=dbms_sql execute(v_cursor); 執行語句dbms_sql close_cursor(v_cursor); 關閉游標exceptionwhen others thendbms_sql close_cursor(v_cursor); 關閉游標raise;end;以上過程編譯通過後 執行過程創建表結構 SQL> execute proc_dbms_sql( dinya_test id number( ) not null name varchar ( ) );PL/SQL procere successfully pletedSQL> desc dinya_test ;Name TypeNullable Default Comments ID NUMBER( )NAME VARCHAR ( ) YSQL> 使用DBMS_SQL包執行DML語句 需求 使用DBMS_SQL包根據用戶輸入的值更新表中相對應的記錄 查看錶中已有記錄 SQL> select * from dinya_test ;ID NAME Oracle CSDN ERPSQL>建存儲過程 並編譯通過 create or replace procere proc_dbms_sql_update(id number name varchar )asv_cursor number; 定義游標v_string varchar ( ); 字元串變數v_row number; 行數beginv_cursor:=dbms_sql open_cursor; 為處理打開游標v_string:= update dinya_test a set a name=:p_name where a id=:p_id ;dbms_sql parse(v_cursor v_string dbms_sql native); 分析語句dbms_sql bind_variable(v_cursor :p_name name); 綁定變數dbms_sql bind_variable(v_cursor :p_id id); 綁定變數v_row:=dbms_sql execute(v_cursor); 執行動態SQLdbms_sql close_cursor(v_cursor); 關閉游標exceptionwhen others thendbms_sql close_cursor(v_cursor); 關閉游標raise;end;執行過程 根據用戶輸入的參數更新表中的數據 SQL> execute proc_dbms_sql_update( csdn_dinya );PL/SQL procere successfully pletedSQL> select * from dinya_test ;ID NAME Oracle csdn_dinya ERPSQL>執行過程後將第二條的name欄位的數據更新為新值csdn_dinya 這樣就完成了使用dbms_sql包來執行DML語句的功能 使用DBMS_SQL中 如果要執行的動態語句不是查詢語句 使用DBMS_SQL Execute或DBMS_SQL Variable_Value來執行 如果要執行動態語句是查詢語句 則要使用DBMS_SQL define_column定義輸出變數 然後使用DBMS_SQL Execute DBMS_SQL Fetch_Rows DBMS_SQL Column_Value及DBMS_SQL Variable_Value來執行查詢並得到結果 總結說明 在Oracle開發過程中 我們可以使用動態SQL來執行DDL語句 DML語句 事務控制語句及系統控制語句 但是需要注意的是 PL/SQL塊中使用動態SQL執行DDL語句的時候與別的不同 在DDL中使用綁定變數是非法的(bind_variable(v_cursor :p_name name)) 分析後不需要執行DBMS_SQL Bind_Variable 直接將輸入的變數加到字元串中即可 另外 DDL是在調用DBMS_SQL lishixin/Article/program/SQLServer/201311/22089