圖形界面創建存儲過程
Ⅰ 如何導出DB資料庫的數據
一、導出導入sql Server里某個資料庫
1.在SQL Server企業管理器里選中要轉移的資料庫,按滑鼠右鍵,選所有任務->備份資料庫。
2.備份 選資料庫-完全,
目的 備份到 按添加按鈕
文件名在SQL Server伺服器硬碟下輸入一個自定義的備份資料庫文件名(後綴一般是bak)
重寫 選重寫現有媒體
最後按確定按鈕。
如果生成的備份資料庫文件大於1M,要用壓縮工具壓縮後再到Internet上傳輸。
3.通過FTP或者remote desktop或者pcanywhere等方法
把第二步生成的備份資料庫文件或者其壓縮後的文件傳到目的SQL Server資料庫,如果有壓縮要解壓。
4.目的SQL Server資料庫如果還沒有此資料庫,先創建一個新的資料庫;
然後選中這個新創建的資料庫,按滑鼠右鍵,選所有任務->還原資料庫
還原->從設備->選擇設備->磁碟->添加(找到要導入的備份資料庫文件名)->確定
還原備份集->資料庫-完全
最後按確定按鈕。完全的資料庫導入成功了。
(如果在已經存在的SQL Server資料庫上還原資料庫可能遇到有還有其它人正在使用它而恢復操做失敗,
可以去看 ->管理->當前活動->鎖/對象->找到資料庫下鎖的進程號->到查詢分析器里用kill 進程號殺掉這些鎖,然後再做還原)
注意:如果在原有的目的SQL Server資料庫上從備份文件(*.bak)還原資料庫會把已經存在的表、存儲過程等資料庫對象全部替換成最近這次導入的備份資料庫里的內容。
如果一定要還原備份文件(*.bak)里部分數據,需要另外建一個新資料庫,其邏輯名稱和數量同備份文件(*.bak)里資料庫的邏輯名稱和數量一致;
新資料庫的物理文件名稱取得一定要和備份文件(*.bak)里資料庫的物理文件不一樣才行。
二、導出導入SQL Server里某個表
1.沒有防火牆,同一個區域網里或不在同一個區域網里,但通過Internet可以互相訪問
在SQL Server企業管理器里選中目的資料庫 ,按滑鼠右鍵,選所有任務->導入數據-> 彈出數據轉換服務導入/導出向導窗口->下一步->選數據源-> 數據源(用於SQL Server的Microfost OLE DB提供程序)->伺服器(可選擇區域網內能訪問到的所有SQL Server伺服器,或者直接輸入IP地址)->選擇使用windows身份驗證還是使用SQL Serve身份驗證(輸入資料庫的用戶名和密碼)->資料庫(可選擇上面選中SQL Server伺服器上所有許可權范圍內的資料庫)->下一步->選擇目的->目的(用於SQL Server的Microfost OLE DB提供程序)->伺服器(默認為上一步里選中的導出伺服器,也可以選其它區域網內能訪問到的所有SQL Server伺服器,或者直接輸入IP地址)->目的資料庫(可選擇上面選中SQL Server伺服器上所有許可權范圍內的資料庫)->下一步->制定表復制或查詢->選從源資料庫復製表和視圖(也可以選擇用一條查詢指定要傳輸的數據)->下一步->選擇源表和視圖->在要導入的表和視圖前面選中源->目的出現同樣的表名(可以手工修改成別的表名)->轉換->列映射和轉換裡面可以修改源表和目的表之間欄位的對應關系,修改目的表欄位的類型和長度等,並可以選擇創建目的表,在目的表中增加行,除去並重新創建目的表,啟用標志插入等選項->確定->下一步->保存、調度和復制包->時間->立即運行(如果要實現隔一段時間自動導出導入數據,選調度DTS包以便以後執行)->保存(可以不選)->[ 保存DTS包(如果以後還要轉移這批相同的數據,可以把本次導出導入的內容和步驟保存起來,存到SQL Server即可,保存的時候要輸入DTS的包名及詳細描述)->下一步-> ]->完成
正在執行包->圖形界面顯示創建表及插入記錄的步驟和狀態->完成
2.經過防火牆,不在同一個區域網里
①、導出表裡的數據到文本文件:
在SQL Server企業管理器里選中目的資料庫,按滑鼠右鍵,選所有任務-> 導入數據->彈出數據轉換服務導入/導出向導窗口->下一步->選數據源-> 數據源(用於SQL Server的Microfost OLE DB提供程序)->伺服器(可選擇區域網內能訪問到的所有SQL Server伺服器)->選擇使用windows身份驗證還是使用SQL Serve身份驗證(輸入資料庫的用戶名和密碼)->資料庫(可選擇上面選中SQL Server伺服器上所有許可權范圍內的資料庫)->下一步->選擇目的->目的(文本文件)-> 文件名(在自己的電腦硬碟中生成一個自定義的文本文件) ->下一步->制定表復制或查詢->選從源資料庫復製表和視圖(也可以選擇用一條查詢指定要傳輸的數據)->下一步->選擇目的文件格式->源(選擇要導出的表)->用默認的帶分隔符->選第一行包含有列名稱選項->下一步->保存、調度和復制包->時間->立即運行(如果要實現隔一段時間自動導出到文本文件,選調度DTS包以便以後執行)->保存(可以不選)-> [保存DTS包(保存的時候要輸入DTS的包名及詳細描述)->下一步->]->完成
正在執行包->圖形界面顯示表到文本文件的步驟和狀態->完成
如果生成的文本文件大於1M,要用壓縮工具壓縮後再到Internet上傳輸。
②、通過FTP或者remote desktop或者pcanywhere等方法把
第①步生成的文本文件或者其壓縮後的文件傳到目的SQL Server資料庫,如果有壓縮要解壓。
③、把文本文件導入目的SQL Server資料庫
直接把文本文件導入目的SQL Server資料庫里跟文本文件同名的新表名時,默認的會把所有欄位類型都變成字元串。
所以我們要這樣做:
在源SQL Server資料庫上先生成創建表的sql語句
在SQL Server查詢分析器里->選中源資料庫里表名->按右鍵->在新窗口中編寫對象腳本->創建->復制下新窗口內創建表名的sql語句到目標SQL Server資料庫上查詢分析器里執行創建表名的sql語句,生成空表結構。(如果已經存在這樣的表名,修改建表的sql語句,在表名後面加上導入時間的年月信息,例如table_0113)
調用導入/導出工具->彈出數據轉換服務導入/導出向導窗口->下一步->選數據源-> 數據源(文本文件)->文件名(已傳到目的SQL Server資料庫下要導入的文本文件,後綴可以不是*.txt,但是常規文本編輯器能打開的文件,文件類型選全部)->下一步->選擇文件格式->用默認的帶分隔符->選第一行包含有列名稱選項->下一步->制定列分割符->逗號->下一步->選擇目的->目的(用於SQL Server的Microfost OLE DB提供程序)->伺服器(可選擇目標區域網內能訪問到的所有SQL Server伺服器)-> 選擇使用windows身份驗證還是使用SQL Serve身份驗證(輸入資料庫的用戶名和密碼)->資料庫(可選擇上面選中SQL Server伺服器上所有許可權范圍內的資料庫)->下一步->選擇源表和視圖->修改目的表名為剛才創建的表名->轉換(在目的表中追加行) ->下一步->保存、調度和復制包->時間->立即運行(如果要實現隔一段時間自動把文本文件導入,選調度DTS包以便以後執行)->保存(可以不選)-> [保存DTS包(保存的時候要輸入DTS的包名及詳細描述)->下一步->]->完成
正在執行包->圖形界面顯示文本文件到表的步驟和狀態->完成
如果要更改導入時間的年月信息的表名,例如table_0113到原來的表名,在企業管理器里把原來的表名改成table_old_0113,table_0113改名成table。這會對應用程序里頻繁訪問的表照成一定的中斷。
注意:源表上的建的索引和主鍵約束不能用上面介紹的1和2方法轉移過來,還需要手工來建索引和主鍵。
標志種子和not null的約束可以繼承過來。
導入視圖時會把源視圖里所有的真實數據導入成一個新表,而不是視圖。
三、SQL Server存儲過程或用戶定義的函數導出導入
1、導出存儲過程或用戶定義的函數成*.sql文件
在SQL Server企業管理器里選中源資料庫,存儲過程->單選或者多選中要轉移的存儲過程->用戶定義的函數->單選或者多選中要轉移的函數->按滑鼠右鍵,選所有任務->生成SQL腳本->確定->在自己的電腦硬碟中生成一個自定義的*.sql文件->保存->正在生成SQL腳本->成功
2、如果目的資料庫經過防火牆,不在同一個區域網里,要通過FTP或者remote desktop或者pcanywhere等方法把第1步生成的*.sql文件傳到目的SQL Server資料庫伺服器上。
3、用查詢分析器進入SQL Server目的資料庫,從菜單里選文件->打開->打開查詢文件->選中第1步生成的*.sql文件->點執行查詢的綠色倒三角型快捷鍵->查詢窗口裡會出現執行後的消息(有時候可能因為存儲過程和用戶定義的函數之間有一定的依賴關系,會報一些錯。
最好先執行用戶定義的函數的*.sql文件,再執行存儲過程的*.sql文件)
四、ORACLE資料庫里表導入SQL Server資料庫
1、在目的SQL Server資料庫伺服器上安裝ORACLE Client軟體或者ORACLE ODBC Driver. 在$ORACLE_HOME\network\admin\tnsnames.ora里配置ORACLE資料庫的別名(service name)。
具體配置方法可以參考本站文章:客戶端連伺服器的注意事項
2、在WIN2000或者win2003伺服器->管理工具->數據源(ODBC)->系統DSN(本機器上NT域用戶都可以用)->添加->ORACLE ODBC Driver->完成->data source name 可以自定義,我一般填ORACLE資料庫的sid標志,description里可以填ORACLE資料庫詳細描述,也可以不填->data source service name 填第1步定義的ORACLE資料庫別名->OK。
(用戶DSN和文件DSN也可以類似配置,但使用的時候有一些限制)
3、SQL Server的導入和導出數據工具里->選數據源-> 數據源(其它(ODBC數據源))->選第2步在ODBC里定義的系統DSN source name,用戶名密碼處填寫ORACLE系統的用戶名和密碼->下一步->選擇目的,選SQL Server資料庫(跟上面第二點講的一致,就不重復了)。
注意:在ORACLE表和SQL Server表之間'轉換'那步很重要,可以改變默認的欄位數據類型,如image->text,decimal->int
五、SQL Server資料庫里表導入ORACLE資料庫
方法一.導出目的選通過ODBC數據源里定義的ORACLE資料庫, 注意ORACLE里表名都是大寫的.我一般在ORACLE這邊先生成好表結構,再選擇SQL SERVER源表往ORACLE目的表裡追加數據.數據傳輸速度比方法二慢.
方法二.從SQL Server資料庫導入數據到ORACLE資料庫可以選擇用Windows下ORACLE9i企業或者個人版資料庫做中轉。
Ⅱ SQLyog和MySQL什麼關系,這個sqlyog有圖形界面,mysql沒有,怎麼回事啊
MySQL是資料庫(服務端),SQLyog是連接MySQL的可視化客戶端軟體。
MySQL沒有圖形界面。 MySQL操作命令(例如查詢和更改)需要在MySQL伺服器上使用sql語句執行。 查詢結果只能顯示在伺服器上。而SQLyog有圖形界面,是為了解決MySQL的問題而產生的mysql客戶端軟體。
SQLyog是一個集成的開發環境,專門用於開發MySQL資料庫存儲的程序單元。 程序員或資料庫管理員可以在SQLyog中執行MySQL操作,例如添加、刪除、修改和查詢SQL語句,存儲過程、觸發器等MySQL功能的使用。
(2)圖形界面創建存儲過程擴展閱讀:
SQLyog所具有的基本功能舉例:
1、快速備份和還原數據。
2、以GRID / TEXT格式顯示結果。
3、支持客戶端選擇和過濾數據。
4、批量執行大型SQL腳本文件。
5、快速執行多個查詢,每頁可以返回1000個以上的記錄集,並且此操作直接在內存中生成。
6、完全使用MySQL C APIs程序介面。
7、使用直觀的表格界面創建或編輯數據表格。
8、使用直觀的表格界面編輯數據。
9、執行索引管理。
10、創建或刪除資料庫。
11、操縱資料庫的各種許可權:庫、表、欄位。
Ⅲ oracle中一個存儲過程定時執行,想在一個窗口中下次執行查看時間
建立一個JOB。把時間寫好就行。 用PLSQL DEVELOPE 工具書中有圖形界面可以新建一個JOB。
就是定義一下名稱,調用存儲過程名,執行間隔。
Ⅳ 如何修改存儲過程 (SQL Server Management Studio)
兩種方法:1圖形化界面操作,右鍵你要修改的存儲過程,點擊修改
2、SQL語句修改,alert
proc
你要修改的存儲過程
Ⅳ 如何創建資料庫實例
按照DBCA給出的提示,很容易創建一個新資料庫實例。
在創建資料庫的時候,DBCA還提供了兩個選項,讓你可以根據剛剛設置好的參數生成一個資料庫實例模板和一份資料庫實例創建腳本。這兩個東西是非常好,非常有用的東西,資料庫模板由Oracle自己管理維護,已經創建好的資料庫實例模板可以在DBCA圖形程序新建資料庫實例時作為模板來使用,另外在DBCA使用responseFile文件或者命令行參數創建資料庫時也需要用到(見後面介紹);資料庫創建腳本是一組腳本,包括shell腳本和sql腳本,這些腳本共同實現一個功能,那就是按照你之前在DBCA中設置好的那樣創建一個資料庫實例(後面也會有介紹),你需要做的只是將這些腳本在你的代碼中調用起來。當然,你也可以選擇只生成資料庫模板或者資料庫腳本,而不用去創建一個真的資料庫(這通常很費時間)。
DBCA是一個非常強大的工具,上面看到的只是DBCA最常用的創建一個資料庫實例的使用,其實DBCA還提供另外兩種使用方法,分別是responseFile和命令行帶參調用。
先說DBCA的responseFile使用方法,responseFile這個東東並不陌生,前文講的Oracle自動安裝就是使用responseFile完成的,DBCA的responseFile使用方法和Oracle安裝程序的responseFile使用方法基本一致。但DBCA的responseFile的來源只能是Oracle安裝包中提供的模板文件,而不能向Oracle安裝程序的responseFile一樣,先自己record一個,然後再用這個record去指導Oracle的自動安裝。從Oracle安裝包中獲取到DBCA的responseFile模板文件後,你可以根據自己的需要編輯修改該模板文件,以完成對資料庫實例的某些參數設置(DBCA圖形界面所提供的參數設置,responseFile中都可以設置,而且該responseFile模板文件的注釋寫的很好,你完全不用擔心無法搞定那些繁雜的資料庫實例參數設置,贊Oralce一個!)。該模板文件在Oracle安裝包中的位置一般在${ORACLE_PACKAGE}/response目錄下。
有了responseFile之後,你只需在調用DBCA的時候指定responseFile的位置和另外一些參數:
dbca [-silent|-progressOnly] -responseFile responseFile名稱
其中-silent|-progressOnly選項意義和Oracle安裝程序命令行參數中的同名選項一樣,表示完全字元界面自動安裝或者帶圖形提示界面的半自動化安裝。
responseFile名稱當然就是responseFile的具體位置了。
但是,有一點不是很好,那就是使用DBCA的responseFile方式創建Oracle資料庫實例,需要事先已經存在一個資料庫實例模板了,在responseFile中再指定該資料庫實例模板名,然後DBCA再依據這個已有的資料庫實例模板完成新資料庫實例的創建,所以就會有前面講到的DBCA圖形界面創建資料庫實例時提供生成資料庫實例模板的選項(資料庫實例模板也可以從一個已有資料庫實例生成),就是在這要用到的。
從上面調用DBCA使用responseFile的命令中,應該已經看到了DBCA是提供一些命令行參數選項的,其實DBCA提供的命令行參數選項遠比你想像的強大,甚至可以這么說,所有DBCA圖形界面和responseFile能夠辦到的事,通過DBCA豐富的命令行參數選項都可以辦到。你在DBCA圖形界面上設置的參數或者在responseFile中指定的參數值都可以通過DBCA的命令行參數選項來進行設置,所以你完全可以只通過DBCA的命令行帶參調用來完成一個資料庫實例的創建(當然也包括刪除、修改資料庫實例等所有DBCA圖形界面所能提供的功能)。其實,我更願意這樣認為,DBCA的responseFile應用也是一種DBCA命令行帶參調用的使用。需要注意的是,當DBCA的命令行參數和responseFile同時設置一個參數時,命令行參數的優先順序是比responseFile要高的。另外,使用DBCA命令行帶參調用新建資料庫實例和使用responseFile新建資料庫實例一樣,也是需要事先已經存在一個資料庫實例模板,才能完成新資料庫實例的創建。一份非常詳細的DBCA所有命令行參數選項列表,你可以通過執行dbca -help獲得。
到現在你可能已經發現,DBCA圖形界面、DBCA的responseFile使用以及DBCA的命令行帶參調用,其實是三個分別具備完全資料庫實例設置功能的工具或者介面,分別對應不同的應用場景,它們可以滿足你幾乎所有的應用需求(使用這樣的工具來幫助構建自己的軟體真是非常愜意的一件事情,再贊Oracle一個!)。
第二種是通過腳本(是否稱為命令行方式更合適,下文描述的腳本方式其實都是命令行方式的非互動式方法,或者說命令行的自動化方式,但其實所有腳本方式都可以將shell腳本或sql腳本中的shell命令、sqlplus命令拆分出來,手工在shell中或者sqlplus界面中進行互動式的輸入執行,這可以稱為命令行的手工方式)來完成資料庫實例的代碼中自動創建。這里說的腳本包括shell腳本和sql腳本,這種方式可以說是最適合與編程結合的,因為這些shell腳本或者sql腳本都可以直接在shell命令中調用執行,所以可以很好與shell編程相結合。而這其實是基於一個非常重要的事實,即Oracle提供了一個互動式的命令行工具sqlplus(類似與DB2的db2cmd),這個工具可以認為是一個Oracle資料庫管理工具,通過它可以執行一些Oracle的資料庫管理命令,來完成一些資料庫管理工作(這當然就包括資料庫實例的創建),同時你也可以把它當作一個SQL語句執行器,直接在里邊執行你想要執行的SQL語句或者存儲過程等,並獲取執行結果。並且,更重要的是,sqlplus可以直接在shell命令行中進行非互動式的調用執行(通常是調用執行一段sqlplus語句,或者是一個由一些sqlplus語句組成的sql腳本,我所說的sqlplus語句包括Oracle資料庫管理維護命令、SQL語句和存儲過程等),這就為在shell編程中使用sqlplus完成資料庫實例自動創建工作提供了可能。
shell命令行中非互動式調用sqlplus執行一段sqlplus語句是利用shell編程中重定向命令的一個特性,即分隔符重定向輸入。一般用法如下:
command<<任意自定義分隔符
>(換行)內容
>(換行)內容
>自定義分隔符
shell中遇到<<則會自動將下一個單詞認作分隔符,並將分隔符後面的文本當作command命令執行的內容傳遞給command依次全部執行直至遇到下一個分隔符單詞才結束。這里的分隔符可以是任意自定義的單詞,通常使用EOF,舉例:
sqlplus / as sysdba<<EOF
startup nomount;
select * from v$version;
shutdown immediate;
exit;
EOF
這段shell程序調用sqlplus執行了若干sqlplus語句,用來啟動資料庫實例,查詢資料庫版本信息,然後關閉資料庫實例,退出sqlplus。
shell命令行中非互動式調用sqlplus執行一個sql腳本是利用sqlplus本身提供的命令行參數。在sqlplus界面中可以通過start命令和@命令來執行一個sql腳本,兩者功效相同,用法如下:
SQL>start sql腳本絕對路徑;
SQL>@sql腳本絕對路徑;
而在shell命令行中可以使用@來完成sqlplus對sql腳本的調用執行,舉例:
sqlplus / as sysdba @./MySQL.sql
以上命令會調用sqlplus執行當前目錄下的MySQL.sql腳本。
使用腳本來完成資料庫實例的創建工作,也分為兩種情況。
一種是誠如前文所述的那樣,在使用DBCA圖形工具創建資料庫實例的同時生成一份資料庫實例創建腳本(包括若干shell腳本和sql腳本),那麼你就可以使用這份腳本,在shell中進行調用,完成資料庫實例的代碼自動創建。使用這份資料庫實例創建腳本創建的新資料庫實例和原資料庫實例是完全一樣,當然,你可以將生成的腳本進行修改,以完成你對資料庫實例的某些設置,但是請在你對腳本內容已經足夠了解,並且知道你自己在干什麼的情況下修改腳本,否則你很有可能使用修改後的腳本無法正確創建資料庫實例。這種方法中shell腳本對sqlplus的使用,更多的是使用sqlplus來執行一些Oracle生成的sql腳本(這些sql腳本的內容是就是一些sqlplus語句的集合,它們的任務就是完成資料庫實例的創建以及設置)。
另一種情況則是不依靠DBCA生成的腳本,完全由自己來編寫實現一份shell腳本,在腳本中你可以調用sqlplus執行一段sqlplus語句或者其它一些sql腳本,以完成資料庫實例的創建和設置,這完全取決於你的實現;而最常用的用來創建資料庫實例的一個方法就是在sqlplus中使用create database語句,create database語句提供了許多豐富的選項和參數設置,確保你能完全創建一個自己所需要的資料庫實例。當然,還有一些其它方法可以創建資料庫實例,比如調用執行oracle提供某些存儲過程等。
至於create database語句的詳細介紹可以參考oracle的sql reference。
第三種嚴格來說不能算作一種創建Oracle資料庫實例的方法,它是通過已有的資料庫實例為基礎來完成新資料庫實例的創建的。這種方法是首先通過第一種或者第二種方法來創建好一個資料庫實例,然後將該資料庫實例的物理文件進行備份,然後直接使用備份的物理文件恢復出一個與原資料庫實例完全一樣新的資料庫實例,所以這種方法需要和第一、二種方法相配合才能使用。這種方法其實已經屬於Oracle數據備份與恢復的范疇了,就是Oracle數據備份恢復方式中的物理備份恢復,所以這種方法可以叫做物理恢復法。
簡單介紹物理恢復法,首先將一個已經存在資料庫實例(最好已關閉)進行物理備份,所謂物理備份其實就是復制該資料庫實例所使用的操作系統文件,這些文件主要包括DataFiles、RedoLogs、ControlFiles和UndoFiles(這些文件一般存在於$ORACLE_HOME/oradata目錄下),進行資料庫實例恢復的時候只需將備份的操作系統文件復制到新的oradata目錄下即可,可以直接啟動使用恢復後的該資料庫實例。不難看出,這種備份恢復是依賴於操作系統平台的。
詳細的物理備份和恢復介紹可以參考oracle的backup and recovery basics以及backup and recovery advanced user's guide。
說完了資料庫實例的創建,現在來說說資料庫實例的刪除和修改。其實介紹完了資料庫實例的創建,資料庫實例的刪除和修改就非常簡單了。基本和前文資料庫實例創建的內容相一致,且比較而言更簡單。
資料庫實例的刪除從上文中資料庫實例的創建不難得到,大致有兩種方法,DBCA工具和命令行方式。
DBCA工具除了能夠用來創建資料庫實例,當然也能夠用來刪除資料庫實例了,且同樣可以用使用responseFile或者命令行帶參調用等方法來完成資料庫實例的刪除,請參考資料庫實例創建部分。
命令行刪除資料庫實例的方式,嚴格來講,是使用一組sqlplus命令來完成資料庫實例的刪除,這組sqlplus命令可以組織在一個sql腳本中,然後在shell命令行中調用sqlplus程序來執行該sql腳本,或者直接在shell命令行中利用shell程序重定向特性調用sqlplus依次完全執行這組sqlplus命令,再或者使用手工的互動式輸入執行,使用方法請參考資料庫實例創建部分。
其中涉及到的sqlplus命令參考以下:
SQL>startup restrict mount;
SQL>drop database;
使用sqlplus命令刪除資料庫實例,必須先以restrict mount方式將資料庫實例載入(但不打開),然後使用drop database語句刪除該資料庫實例。
資料庫實例的修改和資料庫實例的創建,情況類似,DBCA方式或者命令行方式。只要是DBCA方式能夠修改的資料庫實例參數,命令行方式也都能辦到。