存儲過程遠程資料庫
① 通過oracle dblink,怎麼執行遠程資料庫的存儲過程。或者說可以執行嗎怎麼弄
能不能執行存儲過程取決於你的dblink那個資料庫的用戶的許可權,比如你這邊的資料庫用戶A,是另外一個資料庫的dblink用戶,那麼另外那個資料庫的用戶是利用A用戶進行操作的。一般都是select,執行存儲過程什麼的,是看的A的許可權。
不過我要梯形下,就選你insert,提示成功,可是實際並咩有插入,因為insert後,那個dblink的session就已經關閉了,commit並不能確認。所以我們一般是通過遠程式控制制存儲過程解決的這個問題。
② 什麼是資料庫存儲過程
存儲過程(Stored Procere)是在大型資料庫系統中,一組為了完成特定功能的sql 語句集,它存儲在資料庫中,一次編譯後永久有效,用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是資料庫中的一個重要對象。在數據量特別龐大的情況下利用存儲過程能達到倍速的效率提升。
這類語言主要提供以下功能,讓用戶可以設計出符合應用需求的程序:
1、變數說明
2、ANSI(美國國家標准化組織)兼容的SQL命令(如Select,Update….)
3、一般流程式控制制命令(if…else…、while….)
4、內部函數
(2)存儲過程遠程資料庫擴展閱讀:
種類
1、系統存儲過程
2、本地存儲過程
3、臨時存儲過程
4、遠程存儲過程
5、擴展存儲過程
③ 資料庫存儲過程有哪些,面試題
/*
系統存儲過程很多,有些常用,有些不常用
常用:
sp_attach_db附加資料庫到一個伺服器中
sp_columns返回在當前環境中列的信息
sp_databases列出當前系統中的資料庫
sp_configure顯示或修改當前伺服器的全局配置
sp_depends顯示資料庫對象的依賴信息
sp_executesql執行動態的T-SQL語句
sp_help報告有關資料庫對象的信息
sp_helpdb返回指定資料庫或全部資料庫的信息
sp_helptext顯示規則、默認值、存儲過程、觸發器、視圖等的未加密的文本定義信息
sp_indexes返回指定遠程表的索引信息
sp_lock返回有關鎖的信息
sp_password增加或者修改指定login的口令
sp_rename更改用戶創建的資料庫對象名稱
sp_renamedb更改資料庫名稱
sp_spaceused顯示資料庫的空間使用情況
sp_tables返回在當前環境中可以被查詢的對象的列表
sp_who提供當前用戶和進程的信息
不常用:
sp_addlinkedserver創建一個允許執行分布式查詢的鏈接伺服器
sp_addlinkedsrvlogin在本地伺服器和遠程伺服器之間創建login帳戶的映射關系
sp_addlogin創建一個新的login帳戶
sp_add_agent_parameter在代理文件中增加一個參數
sp_add_agent_profile為復制代理增加一個代理文件
sp_add_alert創建一個警報
sp_add_category在伺服器上,增加一種作業、警報或者操作員的特定分類
sp_add_data_file_recover_suspect_db當資料庫復原不能完成時,向文件組增加一個數據文件
sp_add_file_recover_suspect_db對於復原有問題的資料庫增加一個文件
sp_add_job增加一個sqlserveragent可以執行的作業
sp_add_jobschele為作業創建調度
sp_add_jobserver把指定的作業增加到指定伺服器上
sp_add_jobstep在作業中增加一步或一個操作
sp_add_log_file_recover_suspect_db當資料庫復原不能完成時,向文件組增加一個日誌文件
sp_add_notification為警報創建一個通知
sp_add_operator為警報或者作業創建一個操作員
sp_add_targetservergroup增加指定的伺服器組
sp_add_targetsvrgrp_member在指定的目標伺服器組增加一個目標伺服器
sp_addalias在資料庫中為login帳戶增加一個別名
sp_addapprole在資料庫中增加一個特殊的應用程序角色
sp_addarticle創建文章,並把該文章添加到出版物中
sp_adddistpublisher創建一個使用本地分布伺服器的出版伺服器
sp_adddistributiondb在分布伺服器上創建一個新的distribution資料庫
sp_adddistributor增加一個分布伺服器
sp_addextendedproc在系統中增加一個擴展存儲過程
sp_addgroup在當前資料庫中增加一個組
sp_addmergearticle為一個已有的合並出版物創建一個文章
sp_addmergefilter為了連接另外一個表,創建一個合並過濾器
sp_addmergepublication創建一個新的合並出版物
sp_addmergepullsubscription增加一個拉回類型的訂閱物
sp_addmergepullsubscription_agent在訂閱伺服器上,為合並拉回訂閱物創建一個代理
sp_addmergesubscription創建一個推出或者拉回類型的訂閱物
sp_addmessage在系統中增加一個新的錯誤消息
sp_addpublicaton創建一個快照復制或者事務復制出版物
sp_addpublicaton_snapshot創建一個快照代理
sp_addpullsusscription在當前訂閱伺服器的資料庫中增加一個拉回或者匿名訂閱物
sp_addpullsusscription_agent在訂閱伺服器的資料庫中增加一個新的代理
sp_addremotelogin在本地伺服器上增加一個遠程login帳戶,允許執行遠程存儲過程調用
sp_addrole在當前資料庫中增加一個角色
sp_addrolemember為當前資料庫中的一個角色增加一個安全性帳戶
sp_addserver添加一個遠程或者本地伺服器
sp_addsrvrolemember為固定的伺服器角色增加一個成員
sp_addsubscriber增加一個新的訂閱伺服器
sp_addsubscriber_schele為分布代理和合並代理增加一個調度
sp_addsubscription訂閱文章並且設置訂閱伺服器的狀態
sp_addsynctrigers在訂閱伺服器上創建一個立即修改觸發器
sp_addtabletocontents在合並跟蹤表中插入一個參考
sp_addtype創建一個用戶定義的數據類型
sp_admpdevice增加一個備份設備
sp_adser在當前資料庫中為一個新用戶增加一個安全性帳戶
sp_altermessage修改錯誤信息的狀態
sp_addly_job_to_targets把作業應用到一個或者多個目標伺服器
sp_approlepassword在當前資料庫中改變應用程序角色的口令
sp_aarticle_validation為指定的文章初始化確認請求
sp_aarticlecolumn指定在文章中使用的列
sp_aarticlefilter創建一個用於水平過濾數據的過濾器
sp_articleview當表被過濾時,為文章創建一個同步化對象
sp_attach_single_file_db在當前伺服器中,附加一個只有一個數據文件的資料庫
sp_aautostats對於一個指定的索引或統計,自動顯示updatestatistics的狀態
sp_bindefault把默認值綁定到列或用戶定義的數據類型上
sp_bindrule把規則綁定到列或用戶定義的數據類型上
sp_bindsession綁定或解除綁定與實例中的其它事務的連接
sp_browsereplcmds在分布資料庫中返回一種可讀格式的結果集
sp_catalogs返回指定連接伺服器中的系統目錄列表,在本地伺服器中等價於資料庫列表
sp_certify_removable確認在可移動介質上用於分布的資料庫是否正確配置
sp_change_agent_parameter修改復制代理配置使用的參數
sp_change_agent_profile修改復制代理配置使用的配置參數
sp_change_users_login修改login與當前資料庫中用戶之間的關系
sp_changearticle改變文章的屬性
sp_changedbowner改變當前資料庫的所有者
sp_changedistpublisher改變分布出版伺服器的屬性
sp_changedistributor_password改變分布伺服器的口令
sp_changedistributor_property改變分布伺服器的屬性
sp_changedistribtutiondb改變分布資料庫的屬性
sp_changegroup改變安全性帳戶所屬的角色
sp_changemergearticle改變合並文章的屬性
sp_changemergefilter改變一些合並過濾器的屬性
sp_changemergepublication改變合並出版物的屬性
sp_changemergepullsubscription改變合並拉回出版物的屬性
sp_changemergesubscription改變合並的推出或者拉回出版物的屬性
sp_changeobjectowner改變對象的所有者
sp_changepublication改變出版物的屬性
sp_changesubscriber改變用於訂閱伺服器的選項
sp_changesubscriber_schele改變用於分布式代理和事務代理的訂閱伺服器的調度
sp_changesubstatus改變訂閱伺服器的狀態
sp_column_privileges返回列的許可權信息
sp_column_privileges_ex返回在鏈接伺服器上指定表的列的許可權信息
sp_columns_ex返回在鏈接伺服器上列的信息
sp_create_removable創建一個可移動介質資料庫
sp_createstats創建單列的統計信息
sp_cursor用於請求定位更新
sp_cursor_list報告當前打開的伺服器游標屬性
sp_cursorclose關閉和釋放游標
sp_cursorfetch從游標中取出數據行
sp_cursoropen定義與游標和游標選項相關聯的SQL語句,然後填充游標
sp_cursoroption用於設置各種游標選項
sp_cycle_errorlog關閉錯誤日誌文件重新開始錯誤記錄
sp_datatype_info返回當前環境支持的數據類型信息
sp_dbfixedrolepermission顯示每一個固定資料庫角色的許可
sp_dboption顯示或修改資料庫選項
sp_dbremove刪除資料庫和與該資料庫相關的所有文件
sp_defaultdb設置登錄帳戶的默認資料庫
sp_defaultlanguage設置登錄帳戶的默認語言
sp_delete_alert刪除警報
sp_delete_backuphistory刪除備份和恢復的歷史信息
sp_delete_category刪除指定類型的作業、警報和操作員
sp_delete_job刪除一個作業
sp_delete_jobschele刪除作業的調度
sp_delete_jobserver刪除指定的目標伺服器
sp_delete_jobstep從作業中刪除指定的作業步驟
sp_delete_notfication刪除發送給某個操作員的所有通知
sp_delete_operator刪除操作員
sp_delete_targetserver從可以使用的目標伺服器列表中刪除指定的伺服器
sp_delete_targetservergroup刪除指定的目標伺服器組
sp_delete_targetsvrgrp_member從目標伺服器組中刪除一個目標伺服器
sp_deletemergeconflictrow刪除沖突表中的記錄行
sp_denylogin防止window用戶或群組連接到sqlserver
sp_describe_cursor報告伺服器游標的屬性
sp_describe_cursor_columns報告在伺服器游標的結果集中列的屬性
sp_describe_cursor_tables報告伺服器游標參考的基表信息
sp_detach_db分享伺服器中的資料庫
sp_drop_agentparameger刪除配置文件中的一個或者多個參數
sp_drop_profile刪除配置文件
sp_dropalias刪除一個帳戶的別名
sp_dropapprole刪除當前資料庫中的應用程序角色
sp_droparticle從出版物中刪除一篇文章
sp_dropdevice刪除資料庫或者備份設備
sp_dropdistpublisher刪除出版伺服器
sp_dropdistributiondb刪除分布資料庫
sp_dropdistributor刪除分布伺服器
sp_dropdropextendedproc刪除一個擴展存儲過程
sp_dropgroup從當前資料庫中刪除角色
sp_droplinkedsrvlogin刪除一個本地伺服器和連接伺服器的映射帳戶
sp_droplogin刪除一個登錄帳戶
sp_dropmergearticle從合並出版物中刪除一篇文章
sp_dropmergefilter刪除一個合並過濾器
sp_dropmergepublication刪除一個合並出版物和與其相關的快照復制
sp_dropmergepullsubscription刪除一個合並拉回訂購物
sp_dropmergesubscription刪除一個訂閱物
sp_dropmessage刪除一個消息
sp_droppublication刪除出版物和與其相關的文章
sp_droppullsubscription刪除當前訂閱伺服器資料庫中的訂閱物
sp_dropremotelogin刪除一個遠程登錄帳戶
sp_droprole從當前資料庫中刪除一個角色
sp_droprolemember從當前資料庫中的一個角色中刪除一個安全性帳戶
sp_dropserver刪除一個遠程或者連接伺服器列表中的伺服器
sp_dropsrvrolemember從一個固定的伺服器角色中刪除一個帳戶
sp_dropsubscriber刪除一個訂閱伺服器
sp_dropsubscription刪除訂閱物
sp_droptype刪除一種用戶定義的數據類型
sp_dropuser從當前資料庫中刪除一個用戶
sp_dropdropwebtask刪除以前版本定義的web任務
sp_dsninfo從一個與當前伺服器相關的分布伺服器返回ODBC和OLEDB數據源的信息
sp_mpparamcmd返回存儲在分布資料庫中的參數化命令的詳細信息
sp_enumcodepages返回一個字元集和代碼頁的列表
sp_enumcustomresovers返回所有可用的定製解決方案表表
sp_enumdsn返回所有可用的odbc和oledb數據源列表
sp_enumfullsubscribers返回訂閱伺服器的列表
sp_expired_subscription_cleanup周期性地檢查訂閱物的狀態是否失效
sp_fkeys返回當前環境的外鍵信息
sp_foreignkeys返回參照連接伺服器的表的主鍵的外鍵
sp_fulltext_catalog創建和刪除全文本目錄
sp_fulltext_column指定某一個列是否參加全文本索引
sp_fulltext_database從當前資料庫中初始化全文本索引
sp_fulltext_service改變MicrosoftSearchService屬性
sp_fulltext_table標記用於全文本索引的表
sp_generatefilters在外鍵表上創建一個過濾器
sp_get_distributor確定一個分布伺服器是否安裝在某個伺服器上
sp_getbindtoken創建一個綁定的連接文本
sp_getmergedeletype返回合並刪除的類型
sp_grant_publication_access在出版物的訪問列表中增加一個用戶
sp_grantdbaccess在當前資料庫中增加一個安全性帳戶
sp_grantlogin允許Windows用戶或群組連接到SQLServer
sp_help_agent_default檢索作為參數傳送的代理類型的默認配置的標識號
sp_help_agent_parameter返回代理配置的所有參數
sp_help_agent_profile返回指定代理的配置
sp_help_alert報告有關警報的信息
sp_help_category提供有關作業、警報、操作員的指定種類的信息
sp_help_downloadlist列出有關作業的信息
sp_help_fulltext_catalogs返回有關全文本索引表的信息
sp_help_fulltext_columns返回標記全文本索引的列信息
sp_help_fulltext_columns_cursor使用游標檢索標記為全文本的索引列
sp_help_fulltext_tables返回標記為全文本索引的表
sp_help_fulltext_tables_cursor使用游標返回標記為全文本索引的表
sp_help_job返回有關作業的信息
sp_help_jobhistory提供有關作業的歷史信息
sp_help_jobschele返回作業的調度信息
sp_help_jobserver返回給定作業的伺服器信息
sp_help_jobstep返回作業的步驟信息
sp_help_operator返回有關操作員的信息
sp_help_publication_access返回可以訪問指定出版物的帳戶列表
sp_help_targetserver列出全部目標伺服器
sp_help_targetservergroup列出指定伺服器組中的全部目標伺服器
sp_helparticle顯示有關文章的信息
sp_helpconstraint返回有關約束的類型、名稱等信息
sp_helpdbfixedrole返回固定的伺服器角色的列表
sp_helpdevice返回有關資料庫文件的信息
sp_helpdistpublisher返回充當分布伺服器的出版伺服器的屬性
sp_helpdistributiondb返回分布資料庫的屬性信息
sp_helpdistributor列出分布伺服器、分布資料庫、工作目錄等信息
sp_helpextendproc顯示當前定義的擴展存儲過程信息
sp_helpfile返回與當前資料庫相關的物理文件信息
sp_helpfilegroup返回與當前資料庫相關的文件組信息
sp_helpgroup返回當前資料庫中的角色信息
sp_helpindex返回有關表的索引信息
sp_helplanguage返回有關語言的信息
sp_helplinkedsrvlogin返回鏈接伺服器中映射的帳戶信息
sp_helplogins返回有關login和與其相關的資料庫用戶信息
sp_helpmergearticle返回有關合並文章的信息
sp_helpmergearticleconflicts返回有關沖突的出版物中的文章信息
sp_helpmergeconflictrows返回在指定沖突表中的行
sp_helpmergefilter返回有關合並過濾器的信息
sp_helpmergepublication返回有關合並出版物的信息
sp_helpmergepullsubscription返回有關拉回訂閱物的信息
sp_helpmergesubscription返回有關推出訂閱物的信息
sp_help_notification報告對於給定操作員的警報信息
sp_helppublication返回有關出版物的信息
sp_helprole返回當前資料庫中的角色信息
sp_helprolemember返回當前資料庫中角色成員的信息
sp_helprotect返回有關用戶許可的信息
sp_helpserver顯示特定遠程或者復制伺服器的信息
sp_helpsort顯示系統的排列順序和字元集的信息
sp_helpsrvrole顯示系統中的固定伺服器角色列表
sp_helpsrvrolemember顯示系統中的固定伺服器角色成員的信息
sp_helpsubscrberinfo顯示有關訂閱伺服器的信息
sp_helpsubscription顯示有特定出版物等有關的訂閱物信息
sp_helpsubscription_properties檢索安全性信息
sp_helptrigger顯示觸發器的類型
sp_helpuser顯示當前資料庫中的用戶、WindowsNT用戶和組、角色等信息
sp_indexoption為用戶定義的索引設置選項
sp_link_publication設置立即修改訂閱伺服器的同步化觸發器使用的配置和安全性信息
sp_linkedservers返回在本地伺服器上定義的鏈接伺服器的列表
sp_makewebtask創建一個執行html文檔的任務
sp_manage_jobs_by_login刪除或者重新指定屬於login的作業
sp_mergemmyupdate製作用於合並復制的修改備份
sp_mergesubscription_cleanup刪除元數據
sp_monitor顯示系統的統計信息
sp_msx_defect從多個伺服器操作中刪除當前伺服器
sp_msx_enlist增加當前伺服器到可用的目標伺服器列表中
sp_pkeys返回某個表的主鍵信息
sp_post_msx_operation插入一些目標伺服器可以執行的信息
sp_primarykeys返回主鍵列的信息
sp_processmail使用擴展存儲過程修改郵件信息
sp_procoption設置或者顯示過程選項
sp_publication_validation初始化文章校驗請求
sp_purge_jobhistory刪除作業的歷史記錄
sp_recompile使存儲過程和觸發器在下一次運行時重新編譯
sp_refreshsubscriptions在拉回出版物中增加訂閱物到文章中
sp_refreshview刷新指定視圖的元數據
sp_reinitmergepullsubscription標記一個合並拉回訂閱
sp_reiniteergesubscription標記一個合並訂閱
sp_reinitpullsubscription標記一個事務訂閱或者匿名訂閱
sp_reinitsubscription重新初始化訂閱
sp_remoteoption顯示或者修改遠程登錄帳戶的選項
sp_remove_job_from_targets從給定的目標伺服器中刪除指定的作業
sp_removedbreplication從資料庫中刪除所有的復制對象
sp_replcounters返回復制的統計信息
sp_repldone修改伺服器做的分布事務的統計信息
sp_replflush處理文章的高速緩沖存儲區
sp_replication_agent_checkup檢查每一個分布資料庫
sp_replicationdboption在當前資料庫中設置復制資料庫的選項
sp_replsetoriginator用於在事務復制中檢測循環登錄
sp_replshowcmds返回標記復制的事務命令
sp_repltrans返回在出版資料庫事務日誌中的所有事務的結果集
sp_resetstatus重新設置異常資料庫的形態
sp_resync_targetserver重新同步所有的多伺服器作業
sp_revoke_publication_access從出版資料庫的訪問列表中刪除login帳戶
sp_revokedbaccess從當前資料庫中刪除安全性帳戶
sp_revokelogin刪除系統的login帳戶
sp_script_synctran_commands生成一個可以用於立即修改訂閱物的腳本
*/
④ oracle 通過dblink訪問遠程存儲過程,返回遊標到本地
存儲過程後加@dblink就行了,前提是dblink里那個user要有遠程資料庫存儲過程的執行許可權的,而且返回的數據也是遠程資料庫的數據。比如你遠程存儲過程是個函數,名字是fun,調用時就用fun@your_dblink(.....) 就行了。具體例子現在沒時間寫了,抱歉
⑤ SQL資料庫如何通過存儲過程訪問遠程MySQL資料庫
SQL code
--訪問不同電腦上的資料庫(遠程只要聯好網就一樣)
--如果經常訪問或數據量大,建議用鏈接伺服器
--創建鏈接伺服器
exec sp_addlinkedserver 'srv_lnk ', ' ', 'SQLOLEDB ', '遠程伺服器名或ip地址 '
exec sp_addlinkedsrvlogin 'srv_lnk ', 'false ',null, '用戶名 ', '密碼 '
go
--查詢示例
select * from srv_lnk.資料庫名.dbo.表名
--導入示例
select * into 表 from srv_lnk.資料庫名.dbo.表名
go
--處理完成後刪除鏈接伺服器
exec sp_dropserver 'srv_lnk ', 'droplogins '
⑥ 怎樣將存儲過程從一個資料庫復制到另一個資料庫
如果你是想把存儲過程這些程序搬到另外一個資料庫的話,那就直接把這些存儲過程另存為SQL文本,然後在另外一個資料庫重新建立就是了。
如果你的意思是保持兩個資料庫數據的同步和一致,就可以考慮配置兩個資料庫之間的數據同步的一些方案,例如資料庫復制、資料庫數據文件的磁碟鏡像等等技術方案,如果對高可用性HA要求非常高的系統,也可以考慮使用商業資料庫系統的集群Cluster方案
⑦ 資料庫系統裡面,什麼是存儲過程、游標、觸發器
存儲過程(Stored Procere)是在大型資料庫系灶散統中,一組為了完成特定功能的SQL 語句集,經編譯後存儲在資料庫中,用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是資料庫中的一個重要對象,任何一個設計良好的資料庫應用程序都應該用到存儲過程。
游標(cursor)是系統為用戶開設的一個數據緩沖區,存放SQL語句的執行結果。手漏每個游標區都有一個名字,用戶可以用SQL語句逐一從游標中獲取記錄,並畢辯爛賦給主變數,交由主語言進一步處理。
觸發器(trigger)是SQL server 提供給程序員和數據分析員來保證數據完整性的一種方法,它是與表事件相關的特殊的存儲過程,它的執行不是由程序調用,也不是手工啟動,而是由事件來觸發,比如當對一個表進行操作( insert,delete, update)時就會激活它執行。
⑧ 什麼是資料庫存儲過程
SQL的調用可以分為函數和存儲過程。
個人理解,其實函數和存儲過程是相似的,至少在引用的時候跟函數很是一樣。或者乾脆把存儲過程理解為另一種函數,另一種經過優化的函數。它的優點在於,存儲過程在被編譯後會被直接保存在資料庫中,成為資料庫的一部分,以後就可以反復調用,運行速度快,效率高,這些是函數做不到的。