Ⅰ 在plsql中,我想從表B中某欄位的數據,然後插入到A表中同一個人的另外一個欄位中
創建表、數據:
createtablelrp_driver
(oidvarchar2(5),
namevarchar2(20),
zhanghuvarchar2(20));
insertintolrp_drivervalues('00011','張三',null);
insertintolrp_drivervalues('00012','李四',null);
insertintolrp_drivervalues('00013','王五',null);
insertintolrp_drivervalues('00014','趙六',null);
createtablesys_operator
(codevarchar2(20),
drivervarchar2(5),
namevarchar2(20));
insertintosys_operatorvalues('zhangsan','00011','張三');
insertintosys_operatorvalues('zhangsan01','00021','張三');
insertintosys_operatorvalues('lisi','00012','李四');
insertintosys_operatorvalues('wangwu','00013','王五');
insertintosys_operatorvalues('zhaoliu','00014','趙六');
commit;
執行:
updatelrp_driveraseta.zhanghu=(selectmin(b.code)fromsys_operatorbwherea.name=b.name);
commit;
結果:
這個意思?
為方便完成指定數據表的同步操作,可以採用dblink與merge結合的方法完成。
操作環境: 此資料庫伺服器ip為192.168.196.76,有center與branch兩個庫,一般需要將center的表數據同步到branch,center為源庫,branch為目標庫,具體步驟如下:
1.在源庫創建到目標庫的dblink
create database link branch --輸入所要創建dblink的名稱,自定義 connect to dbuser identified by 「password」 --設置連接遠程資料庫的用戶名和密碼 using '192.168.196.76/branch'; --指定目標資料庫的連接方式,可用tns名稱
正常情況下,如果創建dblink成功,可採用該方式訪問到遠程資料庫的表.
3.通過merge語句完成表數據同步
此例中需要將center庫中的tb_sys_sqlscripe表同步到branch,簡單的語法如下:
merge into tb_sys_sqlscripe@branch b using tb_sys_sqlscripe c on (b.pk=c.pk) --從center將表merge到branch,同步的依據是兩個表的pk
when matched then update set b.sqlscripe=c.sqlscripe,b.author=c.author --如果pk值是相同則將指定表的值更新到目標表
when not matched then --如果pk值不一至,則將源表中的數據整條插入到目標表中
insert values (c.pk, c.fk, c.createtime, c.lastmodifytime,c.author,c.mole,c.deleteflag, c.scripttype);
commit; --記得merge後必須commit,否則更改未能提交
4.為方便每次需要同步時自動完成同步工作,可將該語句做成存儲過程或腳本來定時執行或按要求手動執行,簡單說一下創建腳本的方法:
a.創建merge文件夾
b.先將merge語句寫完整後,存到merge.sql文件中
c.新建merge.bat文件,編輯後寫入以下內容
sqlplus user/password@serverip/database @"%cd%merge.sql"
Ⅲ 如何批量修改oracle資料庫中某一個表中的某一列數據
最好的方法是批量修改,即每次修改5000條(一次修改不要超過一萬條,否則影響性能). 雖然在11g中,我們也可以選擇使用merge命令,但你的這種情況最好先修改一部分然後看看影響,畢竟在生產環境作這樣的操作風險很大。如果是誤操作,最好還是請DBA來恢復,雖然這樣做會被挨罵,但總比錯上加錯,最後連挨罵的機會都沒有要好得多。如果對這些修改真的有信心,而只是從性能考慮,那可以用下面的方法(pk_col 是表的主鍵
1、構建臨時表進行主鍵關聯更新
需求:T1表有千萬級別的數據量,需要更新這個表的欄位a,b滿足2個條件的記錄。
做法:一般業務會將條件通過excel表格提供給開發,那麼開發首先需要將這個excel表格的內容插入到臨時表T2中,考慮到a,b都不是主鍵,那麼需要將a,b轉化成主鍵後再插入到T2表中,T2表中還可以保存更新前的數據,方便做數據回滾,T2表中有數據後,就可以執行下面腳本進行更新操作:
ps:c,d是需要更新的操作,e,f是條件。必須強調的是id必須是主鍵
1、構建臨時表進行主鍵關聯更新
需求:T1表有千萬級別的數據量,需要更新這個表的欄位a,b滿足2個條件的記錄。
做法:一般業務會將條件通過excel表格提供給開發,那麼開發首先需要將這個excel表格的內容插入到臨時表T2中,考慮到a,b都不是主鍵,那麼需要將a,b轉化成主鍵後再插入到T2表中,T2表中還可以保存更新前的數據,方便做數據回滾,T2表中有數據後,就可以執行下面腳本進行更新操作:
ps:c,d是需要更新的操作,e,f是條件。必須強調的是id必須是主鍵
Ⅳ 哪位高手可以推薦幾款通用的資料庫管理工具
1、MySQL Workbench
MySQL Workbench是一款專為MySQL設計的ER/資料庫建模工具。它是著名的資料庫設計工具DBDesigner4的繼任者。你可以用MySQL Workbench設計和創建新的資料庫圖示,建立資料庫文檔,以及進行復雜的MySQL 遷移
MySQL Workbench是下一代的可視化資料庫設計、管理的工具,它同時有開源和商業化的兩個版本。該軟體支持Windows和Linux系統,下面是一些該軟體運行的界面截圖:
2、資料庫管理工具 Navicat Lite
NavicatTM是一套快速、可靠並價格相宜的資料庫管理工具,大可使用來簡化資料庫的管理及降低系統管理成本。它的設計符合資料庫管理員、開發人員及中小企業的需求。 Navicat是以直覺化的使用者圖形介面所而建的,讓你可以以安全且簡單的方式建立、組織、存取並共用資訊。
界面如下圖所示:
Navicat 提供商業版Navicat Premium 和免費的版本 Navicat Lite 。免費版本的功能已經足夠強大了。
Navicat 支持的資料庫包括MySQL、Oracle、SQLite、PostgreSQL和SQL Server 等。
3、開源ETL工具Kettle
Kettle是一款國外開源的etl工具,純java編寫,綠色無需安裝,數據抽取高效穩定(數據遷移工具)。Kettle中有兩種腳本文件,transformation和job,transformation完成針對數據的基礎轉換,job則完成整個工作流的控制。
·授權協議:LGPL
·開發語言: Java
·操作系統: 跨平台
4、Eclipse SQLExplorer
SQLExplorer是Eclipse集成開發環境的一種插件,它可以被用來從Eclipse連接到一個資料庫。
SQLExplorer插件提供了一個使用SQL語句訪問資料庫的圖形用戶介面(GUI)。通過使用SQLExplorer,你能夠顯示表格、表格結構和表格中的數據,以及提取、添加、更新或刪除表格數據。
SQLExplorer同樣能夠生成SQL腳本來創建和查詢表格。所以,與命令行客戶端相比,使用SQLExplorer可能是更優越的選擇,下圖是運行中的界面,很好很強大。
l授權協議: 未知
l開發語言: Java
l操作系統: 跨平台
5、MySQL管理工具phpMyAdmin
phpMyAdmin是一個非常受歡迎的基於web的MySQL資料庫管理工具。它能夠創建和刪除資料庫,創建/刪除/修改表格,刪除/編輯/新增欄位,執行SQL腳本等。
l授權協議:GPL
l開發語言:PHP
l操作系統:跨平台
6、Mongodb 管理工具Mongodb Studio
Mongodb是一款性能優良,功能豐富的文檔型非關系型資料庫。由於該資料庫是開源項目並且還在不斷更新中,目前為止在任何平台上都不能找到功能相對完整的客戶端資料庫管理工具。而越來越多的項目中使用了Mongodb,使得管理起來十分麻煩.如果點點滑鼠就搞定了.那該有多好。
基於如上背景,我們製作了此MongoDB管理工具,在DBA/開發/管理員三個維度提供一定層次的管理功能。
Mongodb Management Studio功能如下:
l伺服器管理功能
添加伺服器,刪除伺服器
l伺服器,資料庫,表,列,索引,樹形顯示和狀態信息查看
l查詢分析器功能.
支持select,insert,Delete,update
支持自定義分頁函 數 $rowid(1,5)查詢第一條到第五條,需放在select後面.
l索引管理功能
支持列名的顯示,索引的創建,查看,刪除.
l資料庫Profile管理.
可以設置Profile開關,查看Profile信息.自定義分頁大小.
lmaster/slave信息顯示
7、MySQL監控小工具mycheckpoint
mycheckpoint是一個開源的 MySQL監控工具,主要用來監控數據。通過視圖方式提供監控數據報表。mycheckpoint支持以獨立的Web伺服器來運行。
例如:SELECTinnodb_read_hit_percent, DML FROM sv_report_chart_sample;
查看詳細報表示例。
安裝手冊:http://code.openark.org/forge/mycheckpoint/documentation/installation
8、SQL SERVER 資料庫發布向導
Microsoft SQL Server DatabasePublishing Wizard (微軟SQLServer資料庫發布向導) 是微軟發布的一個開源工具,使用該工具可以幫你將SQLSERVER 資料庫導出成一個 SQL腳本,類似 MySQL 的 mysqlmp工具。
官方說明:SQLServer資料庫發布向導提供了一種將資料庫發布到 T-SQL 腳本或者直接發布到支持宿主服務提供程序的方法。
9、Eclipse 的Oracle插件jOra
jOra是一個為 Oracle開發者和管理員提供的 Eclipse 插件,可輕松的對Oracle進行開發和管理。
安裝地址:http://jora.luenasoft.de/updatesite
插件截圖
l授權協議:免費,非開源
l開發語言:Java
l操作系統:跨平台
10、免費PostgreSQL監控工具pgwatch
pgwatch 是一個簡單易用的PostgreSQL的監控工具,支持PostgreSQL 9.0 以及更新的版本。
主要特性:
- 配置簡單
- 大量的監控圖表
- 快速系統檢查面板
- 自動收集統計信息
- 互動式的 Flash 圖表
- 集成 SQL worksheet
l授權協議: Artistic
l開發語言:PHP
l操作系統: Linux
11、MySQL Browser
MySQL的客戶端工具MySQL Browser的優點是簡單,及其的簡單,安裝之後能夠立刻上手,馬上就能使用的那種,布局也很簡陋,功能也很簡陋,簡單使用沒有問題,尤其是剛開始學習mysql的同學,可以嘗試一下。
·授權協議:未知
·操作系統: Windows
12、MySQL客戶端軟體HeidiSQL
HeidiSQL是一個功能非常強大的 MySQL 客戶端軟體,採用Delphi 開發,支持 Windows 操作系統。
l授權協議:GPL
l開發語言:Delphi/Pascal
l操作系統: Windows
13、SQLite管理工具SQLiteStudio
SQLiteStudio 是一個跨平台的 SQLite資料庫的管理工具,採用 Tcl語言開發。
l授權協議:未知
l操作系統:跨平台
14、SQL客戶端工具SQLyog
SQLyog 是一個易於使用的、快速而簡潔的圖形化管理MYSQL資料庫的工具,它能夠在任何地點有效地管理你的資料庫。
功能:
l快速備份和恢復數據;
l以GRID/ TEXT格式顯示結果;
l支持客戶端挑選、過濾數據;
l批量執行很大的SQL腳本文件;
l快速執行多重查詢並能夠返回每頁超過1000條的記錄集,而這種操作是直接生成在內存中的;
l程序本身非常短小精悍!壓縮後只有348 KB ;
l完全使用MySQLC APIs程序介面;
l以直觀的表格界面建立或編輯數據表;
l以直觀的表格界面編輯數據;
l進行索引管理;
l創建或刪除資料庫;
l操縱資料庫的各種許可權:庫、表、欄位;
l編輯BLOB類型的欄位,支持Bitmap/GIF/JPEG格式;
l輸出數據表結構/數據為SQL腳本;
l支持輸入/輸出數據為CSV文件;
l可以輸出資料庫清單為HTML文件;
l為所有操作建立日誌;
l個人收藏管理操作語句;
l支持語法加亮顯示;
l可以保存記錄集為CSV、HTML、XML格式的文件;
l21、99% 的操作都可以通過快捷鍵完成;
l支持對數據表的各種高級屬性修改;
l查看數據伺服器的各種狀態、參數等;
l支持更改數據表類型為ISAM, MYISAM, MERGE, HEAP, InnoDB, BDB;
l刷新數據伺服器、日誌、許可權、表格等;
l診斷數據表:檢查、壓縮、修補、分析。
l授權協議:GPLv2
l開發語言:C/C++
l操作系統: Windows
15、數據挖掘工具RapidMiner
RapidMiner是世界領先的數據挖掘解決方案,在一個非常大的程度上有著先進技術。它數據挖掘任務涉及范圍廣泛,包括各種數據藝術,能簡化數據挖掘過程的設計和評價。
功能和特點
l免費提供數據挖掘技術和庫;
l100%用Java代碼(可運行在操作系統);
l數據挖掘過程簡單,強大和直觀;
l內部XML保證了標准化的格式來表示交換數據挖掘過程;
l可以用簡單腳本語言自動進行大規模進程;
l多層次的數據視圖,確保有效和透明的數據;
l圖形用戶界面的互動原型;
l命令行(批處理模式)自動大規模應用;
lJava API(應用編程介面);
l簡單的插件和推廣機制;
l強大的可視化引擎,許多尖端的高維數據的可視化建模;
l400多個數據挖掘運營商支持;
l耶魯大學已成功地應用在許多不同的應用領域,包括文本挖掘,多媒體挖掘,功能設計,數據流挖掘,集成開發的方法和分布式數據挖掘。
l授權協議:未知
l開發語言:Java
l操作系統:跨平台
16、Oracle 資料庫開發工具Oracle SQL Developer
Oracle SQL Developer 是一個免費非開源的用以開發資料庫應用程序的圖形化工具,使用SQLDeveloper 可以瀏覽資料庫對象、運行 SQL 語句和腳本、編輯和調試 PL/SQL語句。另外還可以創建執行和保存報表。該工具可以連接任何 Oracle 9.2.0.1 或者以上版本的 Oracle 資料庫,支持Windows、Linux 和 Mac OS X 系統。
·授權協議:免費,非開源
·開發語言:Java
·操作系統:Windows Linux MacOS
17、EMS SQL Manager for MySQL
EMS SQL Manager for MySQL是一款高性能MySQL資料庫伺服器系統的管理和開發工具。它支持從MySQL 3.23到6.0的任一版本,並支持最新版本的MySQL的特點,包括:查看、存儲規程和函數、InnoDB外部鍵字和其他特點。它提供了大量工具以滿足富有經驗的用戶的所有要求。添加了精心設計的操作向導系統,以及SQL Manager for MySQL那富有藝術感的圖形用戶界面,即使新手也可以不會為如何使用而感到困擾。
l授權協議:商業軟體
l開發語言:C/C++
l操作系統: Windows
18、資料庫管理工具CoolSQL
CoolSQL是一個資料庫客戶端管理工具。
·支持大部分資料庫包括:DB2、oracle、mysql、MS SQL Server、Derby、HSQL、Informix、Sybase、PostgresSQL等。
·為用戶提供友好和漂亮UI,其整體框架由視圖組成類似於Eclipse。支持直接修改SQL查詢結果。
·支持將表格數據導出成文本文件,EXCEL和HTML。
·擁有一個支持SQL語法著色顯示,智能提示,文本編輯和查找的SQL編輯器。
·能夠展示資料庫大部分元數據包括:版本,數據類型、函數,連接信息等。
·支持導出數據對象信息包括對象數據(INSERT SQL語句),生成創建/刪除腳本(create script/drop script)。
·所有SQL腳本都可以以批量的模式執行。
·能夠搜索所有數據包括資料庫列,表/視圖和其他表格型。
·支持i18n,當前提供兩種語言(中文和英文)。
·提供收藏功能,管理由用戶收集的文本信息。
·支持通過插件擴展其功能。
ll 授權協議:未知
l開發語言:Java
l操作系統:跨平台
19、SQLite Manager
這是一款方便firefox對任何SQLite資料庫操作的擴展。使用這款擴展,可以在firefox下很容易的創建表格、建立索引、瀏覽搜索等操作。此外它還具有一個語法檢查功能的下拉式菜單,從而保證用戶的操作不會出錯。
20、MySQL GUI Tools
這是MySQL官方專業的資料庫管理工具,同時支持多種操作系統。該工具包括下面三個產品:
·MySQL Administrator 1.2
·MySQL Query Browser 1.2
·MySQL MigrationToolkit 1.1
21、SQL客戶端管理工具SQuirreL SQL Client
SQuirreL SQL Client是一個SQL客戶端管理工具。它允許你查看一個兼容JDBC的資料庫的結構,瀏覽表格中的數據,運行SQL命令, 可連接的資料庫有ORCAL,MS SQLSERVER, DB2 等, 它還允許用戶安裝和創建用於補充應用程序基本功能的插件。
功能和特點:
l柱狀圖顯示對像;
l自動完成;
l語句提示;
l標記;
l自動糾正;
l編輯查詢結果;
l關系圖;
l分頁列印。
l授權協議:未知
l語言:Java
l操作系統:跨平台
22、Tomcat管理工具EasyTomcat
EasyTomcat是一個用來幫助簡化 Tomcat和 MySQL管理的系統,你可以啟動、停止和配置Tomcat和MySQL伺服器,同時也提供了監控的功能。
l授權協議:未知
l開發語言:Java
l操作系統:跨平台
23、SQL Server管理工具sqlBuddy
SqlBuddy是C#編寫的一款用於Microsoft SQLServer和MSDE的開源工具,使用它可以很容易的編寫SQL腳本。SqlBuddy提供的功能和查詢分析器的目的有些微不同,它傾向於幫助使用者編寫SQL。
l授權協議:未知
l開發語言:C#
l操作系統: Windows
24、資料庫開發工具GSQL
GSQL 是 Gnome 下的一個集成資料庫開發工具。資料庫結構顯示在下圖左邊的樹狀結構中,支持SQL的語法著色。
l授權協議:未知
l操作系統:Linux
25、SQLite資料庫管理SQLiteSpy
sqlitespy是一個快速和緊湊的資料庫SQLite的GUI管理軟體 。它的圖形用戶界面使得它很容易探討,分析和操縱sqlite3資料庫。
l授權協議:未知
l開發語言:Delphi/Pascal
l操作系統:Windows
26、資料庫開發工具Aqua Data Studio
Aqua DataStudio 是一個為資料庫開發人員准備的集成開發環境,可以對資料庫做查詢、管理,提供大量的資料庫工具,例如資料庫比較、源碼控制等,目前支持的資料庫包括:Oracle, DB2iSeries, DB2 LUW, MS SQL Server, Sybase ASE, Sybase Anywhere, Sybase IQ, Informix,PostgreSQL, MySQL, Apache Derby, JDBC, and ODBC.
l授權協議:未知
l開發語言:C/C++
l操作系統:跨平台
27、MySQL 架構管理工具MySQL MMM
MySQL Master-Master 架構常被用在 SQLquery 相依性低的情況,像是 counter常使用的INSERT INTO ... ON DUPLICATEKEY UPDATE a = a + 1不會因為out-of-order而造成問題。而 MySQL MMM算是其中一套寫得比較好的 MySQLMaster-Master架構管理工具。
l授權協議:未知
l開發語言:Python
l操作系統: Linux
28、MySQL Client
MySQL的客戶端工具,主界面如下:
l授權協議:未知
l操作系統:Windows
Ⅳ 如何用PL/SQL對oracle兩個表的數據做比對,建立oracle視圖結果集
例子:merge
into
test1
t1
using
test2
t2
on
(t1.id
=
t2.id)
when
matched
then
update
set
t1.name
=
t2.name
when
not
matched
then
insert
values(t2.id,t2.name)
--這個相當於條件判斷,這個例子的含義包括了update和insert,所以可以通俗理解為和文件粘貼復制後直接替換一樣。
Ⅵ wincc 6.0 當中的c腳本,做一個小程序讓模擬量變成二進制,讓二進制置位1 想在置位0 但
#include<iostream>
#include<string.h>
#include<stdio.h>
usingnamespacestd;
constintN=1005;
inta[N],tmp[N];
intans;
voidMerge(intl,intm,intr)
{
inti=l;
intj=m+1;
intk=l;
while(i<=m&&j<=r)
{
if(a[i]>a[j])
{
tmp[k++]=a[j++];
ans+=m-i+1;
}
else
{
tmp[k++]=a[i++];
}
}
while(i<=m)tmp[k++]=a[i++];
while(j<=r)tmp[k++]=a[j++];
for(inti=l;i<=r;i++)
a[i]=tmp[i];
}
voidMerge_sort(intl,intr)
{
if(l<r)
{
intm=(l+r)>>1;
Merge_sort(l,m);
Merge_sort(m+1,r);
Merge(l,m,r);
}
}
intmain()
{
intn,T,tt=1;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(inti=0;i<n;i++)
scanf("%d",&a[i]);
ans=0;
Merge_sort(0,n-1);
printf("Scenario#%d: %d ",tt++,ans);
}
return0;
}
Ⅶ 學校Linux伺服器上如何跑R腳本
只需要在R腳本首行,加入下圖中的代碼即可:
R --no-save <mergefiles.r
nohupR[options] [< infile] [> outfile]
nohup 後台運行程序
options:
--version查看R版本;
--slave只列印R腳本的輸出,而不顯示腳本具體執行情況;
--vanilla是--no-save,--no-restore,--no-site-file,--no-init-file和--no-environ的綜合;
--args後面是需要傳遞的參數。
注意:options必須選擇--save,--no-save, --vanilla三個中的一個。
比如編輯一個mergefiles.r文件如下:
R --slave --vanilla <mergefiles.r
Ⅷ Oracle使用merge into 編寫存儲過程 遇編譯錯誤:PL/SQL: ORA-00926: 缺失 VALUES 關鍵字
Oracle使用merge into 編寫存儲過程 遇編譯錯誤,是設置錯誤造成的,解決方法如下:
1、首先新建存儲過程,Create or ReplaceProcere CHK_SYS_EMP 檢查系統工號。
Ⅸ pycharm 能進行 merge 操作嗎
在終端中進入Pycharm的下載目錄,輸入命令 tar xfz pycharm-*.tar.gz,將Pycharm文件夾解壓到當前目錄
3.找到bin文件夾運行Pycharm.sh(.sh 是一個腳本文件,相當於win下的.exe),輸入注冊碼
user name: EMBRACE
key:
14203-12042010
6zcwYOYaGK3euO3ehd1MiTT"2!Jny8