❶ oracle 11g 資料庫導入sql文件到指定資料庫的命令是什麼
1、創建邏輯目錄,該命令不會在操作系統創建真正的目錄,最好以system等管理員創建。
create directory dpdata1 as 『d: estmp』。
2、查看管理理員目錄(同時查看操作系統是否存在,因為Oracle並不關心該目錄是否存在,尺汪頃如果不存在,則出錯)。
select * from dba_directories;
3、陵陸給scott用戶賦予在指定目錄的操作許可權,最陵桐好以system等管理員賦予。
grant read,write on directory dpdata1 to scott;
❷ 登錄system登不了是怎麼回事
scott賬戶登錄不上,報錯ORA-01017: invalid username/password; logon denied最佳解決辦法
千次閱讀2018-02-26 19:19:25
本人在重裝oracle資料庫時發生的頭疼了半天的事,如果小夥伴你也在看這篇文章,那說明你也遇到了跟我一樣的問題!
廢話少說,直接進入正題!
1.登錄scott賬戶,報錯ORA-01017: invalid username/password; logon denied。
2.思路:
<1>系統賬戶登錄-----建立scott賬戶----關聯員工表;
<2>系統賬戶登錄-----找到員工表-----修改賬戶名;
3方法:<此處散薯余採用第2種方法,簡單一點,搞定的小夥伴可以自行探手禪索第一種方式>
1.用系統賬沖滾戶登錄:
system/密碼<即安裝時的口令>
3.修改表賬戶名為scott:alter user scott identified by tiger
❸ plsql連接後沒有用戶
1、首先,我們以管理員賬戶重橡鉛迅新登錄。
2、其次,參考我的目錄找到oracle安裝目錄下的scott.sql文件,我的oracle安裝目錄C:oraclexeapporacleproct11.2.0server
dbmsadminscott.sql如果找不到激雀scott.sql文梁此件的話我們可以自己創建一個scott.sql文件保存到C:oraclexeapporacleproct11.2.0server
dbmsadmin下我們自己新建一個文本文檔復制下面代碼到文本文檔中,然後保存為scott.sql。
3、最後,目錄前面加@運行。這樣Scott賬戶就被添加進來了,但是我們這時候去連接Scott賬戶還是連接不上去,是因為我們還沒有為Scott賬戶解鎖,下來為scott賬戶解鎖。注意要以管理員身份去為Scott賬戶解鎖不然會許可權不足。
❹ Oracle 12c 沒有scott/tiger這個賬戶,用這個命令start /rdbms/admin/scott.sql恢復scott用戶
你要把這個用戶建在PDB資料庫上,你需要建連接到PDB資料庫衡圓上的連接串(可以用netca工具建),然後用dba許可權用戶登錄,再改一下$ORACLE_HOME/rdbms/admin/utlsampl.sql將其中一行
connect scott/tiger
改為
connect scott/tiger@PDB資料庫連接串
全過程如下:
sqlplus system/oracle@PDB資料庫連接串
@$ORACLE_HOME/rdbms/admin/utlsampl.sql
因為12c里有了cdb和pdb資料庫這答埋種新特性咐舉塌,因此你要明白你當前連接的是哪個庫
show con_name
如果每次需要連接scott用戶,還得用pdb連接串
sqlplus scott/tiger@@PDB資料庫連接串
或者先連接到cdb上,再轉到pdb上
sqlplus "/as sysdba"
show pdbs
alter session set container=你想連接的pdb;
select * from scott.emp;
❺ Oracle導入scott.sql失敗
oracle怎麼連接scottoracle11g下scott用戶無法連接資料庫的解決法:1.開始——運行——cmd輸入:sqlplus/assysdba連接到資料庫SQL>connscott/tiger如果scott不存在,會報ORA-01017的錯誤,並會斷開連接2.再以SYS用戶重新連接SQL>connsys/密碼assysdba然後在我們按照oracle的目錄F:\oracle\proct\10.2.0\db_1\RDBMS\ADMIN中(以我的這個目錄為例)找到scott.sql的這個文件運行SQL>@F:\oracle\proct\10.2.0\db_1\RDBMS\ADMIN\scott.sql這樣scott用戶就被添加進來,默認密碼是tigerSQL>connscott/tiger連接成功SQL>SHOWUSER;USER為「SCOTT」3.如果想修改scott的默認密碼可以執行下面命令(先以sys許可權登錄:sqlplus/assysdba)修改scott的登錄密碼SQL>遲友帆alteruserscottidentifiedbygg;你再拿scott/gg來登錄就可以了4.如果scott.sql文件不存在的話,我們可以自己手動建一個。新建文本文檔將以下內容復制到文件中,告叢然後保存為scott.sql,放到2中的文件夾中,再按照2中的步驟碼雹操作即可。
❻ Oracle中SQL*PLUS使用的一些技巧
Sql*plus中蘊藏著好多技巧 如果掌握這些技巧 對於在oracle資料庫下進行快速開發與有效維護資料庫都是有益的 .使用SQL*PLUS動態生成批量腳本將spool與select命令結合起來使用 可以生成一個腳本 腳本中包含有可以批量執行某一任務的語句 例 生成一個腳本 刪除SCOTT用戶下的所有的表 a 創建gen_drop_table sql文件 包含如下語句 SPOOLc:drop_table sqlSELECT DROP TABLE || table_name || ; FROM user_tables;SPOOL OFFb 以SCOTT用戶登錄資料庫SQLPLUS > @ … gen_dorp_table sqlc 在c盤根目錄下會生成文件drop_table sql文件 包含刪除所有表的語句 如下所示:SQL>SELECT DROP TABLE || table_name || ; FROM user_tables; DROPTABLE ||TABLE_NAME|| ; DROP TABLE DEPT;DROP TABLE EMP;DROP TABLE PARENT;DROP TABLE STAT_VENDER_TEMP;DROP TABLE TABLE_FORUM; rows selected 中返廳SQL>SPOOL OFFd 對生成的drop_table sql文件進行編輯去掉不必要的部分 只留下drop table … 語句e 在scott用戶下運行dorp_table sql文件 刪除scott用戶下所有的表 SQLPLUS > @ c:dorp_table sql在上面的操作中 在生成的腳本文件中會有多餘的字元 如運行的sql語句 標題 或返回的行數 需要我們編世閉輯該腳本後再運行 給實際的操作帶來諸多不便 懶惰是人的本性 這促使我們用更簡單的辦法來實賣隱現上面的任務 a 創建gen_drop_table sql文件 包含如下語句 set echo offset feedback offset newpage noneset pagesize set linesize set verify offset pagesize set term offset trims onset linesize set headingoffset timing offset verify offset numwidth SPOOLc:drop_table sqlSELECT DROP TABLE || table_name || ; FROM user_tables;SPOOL OFFb 以SCOTT用戶登錄資料庫SQLPLUS > @ … gen_dorp_table sqlc 在c盤根目錄下會生成文件drop_table sql文件 包含刪除所有表的語句 如下所示:DROP TABLE DEPT;DROP TABLE EMP;DROP TABLE PARENT;DROP TABLE STAT_VENDER_TEMP;DROP TABLE TABLE_FORUM;d 在scott用戶下運行dorp_table sql文件 刪除scott用戶下所有的表 SQLPLUS > @ c:dorp_table sql .將一個表中的數據導出生成一個文本文件 列與列之間以 隔開set echo offset feedback offset newpage noneset pagesize set linesize set verify offset pagesize set term offset trims onset linesize set headingoffset timing offset verify offset numwidth SPOOLc:drop_table sqlselect DEPTNO || || DNAME FROM DEPT;SPOOL OFF將上面的內容保存為一個文本文件後 以scott登錄 執行該文件後顯示結果 ACCOUNTING RESEARCH SALES OPERATIONS通過上面的兩個例子 我們可以將 set echo offset feedback offset newpage noneset pagesize set linesize set verify offset pagesize set term offset trims onset linesize set headingoffset timing offset verify offset numwidth SPOOLc:具體的文件名你要運行的sql語句SPOOL OFF作為一個模版 只要將必要的語句假如這個模版就可以了 在oracle的較新版本中 還可以用set colsep命令來實現上面的功能 SQL> set colsep SQL> select * from dept; ACCOUNTING NEW YORK RESEARCH DALLAS SALES CHICAGO OPERATIONS BOSTON aa bb .動態生成spool命令所需的文件名在我們上面的例子中 spool命令所需要的文件名都是固定的 有時我們需要每天spool一次 並且每次spool的文件名都不相同 如文件名包含當天的日期 該如何實現呢?column dat new_value filename;select to_char(sysdate yyyymmddhh mi ) dat from al;spool c:&&filename txtselect * from dept;spool off; .如何從腳本文件中得到WINDOWS環境變數的值 在windos中 spool c: emp\%ORACLE_SID% txtselect * from dept; spool off在上面的例子中 通過%ORACLE_SID%的方式引用環境變數ORACLE_SID的值 如果ORACLE_SID的值為orcl 則生成的spool文件名為 orcl txt在UNIX中 spool c: emp$ORACLE_SID txtselect * from dept; spool off在上面的例子中 通過$ORACLE_SID的方式引用環境變數ORACLE_SID的值 如果ORACLE_SID的值為orcl 則生成的spool文件名為 orcl txt .如何指定預設的編輯腳本的目錄在sql*plus中 可以用save命令 將上一條執行的sql語句保存到一個文件中 但是如何設置該文件的預設目錄呢?通過SQL> set editfile c: empfile sql 命令 可以設置其預設目錄為c: mpe 預設文件名為file sql .如何除去表中相同的行找到相同的行 SELECT * FROM dept aWHERE ROWID <> (SELECT MAX(ROWID)FROM dept bWHERE a deptno = b deptnoAND a dname = b dname Make sure all columns are paredAND a loc = b loc);注釋 如果只找deptno列相同的行 上面的查詢可以改為 SELECT * FROM dept aWHERE ROWID <> (SELECT MAX(ROWID)FROM dept bWHERE a deptno = b deptno)刪除相同的行 DELETE FROM dept aWHERE ROWID <> (SELECT MAX(ROWIDFROM dept bWHERE a deptno = b deptnoAND a dname = b dname Make sure all columns are paredAND a loc = b loc);注意 上面並不刪除列值為null的行 .如何向資料庫中插入兩個單引號( )Insert inot dept values( aa bb a b );在插入時 用兩個 表示一個 .如何設置sql*plus的搜尋路徑 這樣在用@命令時 就不用輸入文件的全路徑 設置SQLPATH環境變數 如 SQLPATH = C:ORANTDBS;C:APPSSCRIPTS;C:MYSCRIPTS .@與@@的區別是什麼?@等於start命令 用來運行一個sql腳本文件 @命令調用當前目錄下的 或指定全路徑 或可以通過SQLPATH環境變數搜尋到的腳本文件 @@用在腳本文件中 用來指定用@@執行的文件與@@所在的文件在同一目錄 而不用指定全路徑 也不從SQLPATH環境變數指定的路徑中尋找文件 該命令一般用在嵌套腳本文件中 .&與&&的區別&用來創建一個臨時變數 每當遇到這個臨時變數時 都會提示你輸入一個值 &&用來創建一個持久變數 就像用用define命令或帶new_vlaue字句的column命令創建的持久變數一樣 當用&&命令引用這個變數時 不會每次遇到該變數就提示用戶鍵入值 而只是在第一次遇到時提示一次 如 將下面三行語句存為一個腳本文件 運行該腳本文件 會提示三次 讓輸入deptnoval的值 select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval;將下面三行語句存為一個腳本文件 運行該腳本文件 則只會提示一次 讓輸入deptnoval的值 select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval; .引入的目的Copy命令在兩個資料庫之間拷貝數據時特別有用 特別是該命令可以在兩個資料庫之間傳遞long型欄位的數據 缺點 在兩個資料庫之間傳遞數據時 有可能丟失精度(lose precision) .問什麼在修改大量的行時 我的腳本會變得很慢?當通過PL/SQL塊修改一個表中的許多行時 你會創建在表上創建一個cursor 但是只有在你關閉cursor時 才會釋放ROLLBACK SEGMENT 這樣 當cursor仍然打開時 修改過程會變慢 這是因為資料庫不得不搜尋大量的rollback segment以便於維護讀一致性 為了避免這樣情況 試著在表上加一個標志欄位來描述該行是否已經被修改 然後關閉該cursor 然後再打開該cursor 每次可以修改 行 lishixin/Article/program/Oracle/201311/17262
❼ Oracle用戶無法打開SQL文件!提示:SP2-0310: 無法打開文件 "skeleton.sql"
@skeleton表示當前目錄的skeleton.sql文件。
你必須將skeleton.sql拷貝到你當前執行sqlplus的目錄,查看你當前處於培譽哪個目錄:
SQL>
!
pwd
/home/oracle
SQL>
如果你的喚森文件不是在當前目錄,而你又不想拷貝文和中畝件到當前目錄來,那得在執行時指定路徑即可(下面假設你文件所在路徑為e:\oracle\):
SQL>
@e:\oracle\skeleton.sql
提示"用scott登錄,提示如下:ERROR:ORA-28000:the
account
is
locked!
"是表示該用戶由於登陸失敗次數超出系統最大失敗驗證次數限制了,只需要解鎖就可以了:
SQL>
conn
/as
sysdba
已連接。
SQL>
alter
user
scott
account
unlock;
❽ oracle 11g 有沒有腳本scott.sql
scott.sql不是有沒扮察正有的問題,沒困是要看你裝資料庫的時候有沒有選擇模板表廳悔空間(example)來決定的。如果該表空間沒有的話,這個腳本也不會有的。
❾ oracle怎樣導入資料庫
方法一:利用PL/SQL Developer工具導出:
菜單欄---->Tools---->Export Tables,如下圖,設置相關參數即可:
方法二:利用cmd的操作命令導出,詳情如下:
1:G:\Oracle\proct\10.1.0\Client_1\NETWORK\ADMIN目錄下有個tnsname.ora文件,內容如下:
復制代碼 代碼如下:
CMSTAR =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.13.200)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = cmstar)
)
)
其中:CMSTAR為資料庫名,HOST為IP地址,所以可以仿效上面的例子手動添加數據錄連接。
2:用cmd進入命令行
輸入:tnsping cmstar
就是測試172.18.13.200是否連接成功
3:導入與導出,如下:
數據導出:
1 將資料庫TEST完全導出,用戶名system 密碼manager 導出到D:\chu.dmp中
exp system/manager@TEST file=d:\chu.dmp full=y
2將資料庫中system用戶與sys用戶的表導出
expsystem/manager@TESTfile=d:\chu.dmpowner=(system,sys)
3將資料庫中的表table1、table2導出
expsystem/manager@TESTfile=d:\chu.dmptables=(table1,table2)
4將資料庫中的表table1中的欄位filed1以"00"打頭的數據導出
expsystem/manager@TESTfile=d:\chu.dmptables=(table1)query=\"wherefiled1like'00%'\"
上面是常用的導出,對於壓縮我不太在意,用winzip把dmp文件可以很好的壓縮。
不過在上面命令後面加上compress=y就可以了
數據的導入
1將D:\chu.dmp中的數據導入TEST資料庫中。
impsystem/manager@TESTfile=d:\chu.dmp
上面可能有點問題,因為有的表已經存在,然後它就報錯,對該表就不進行導入。
在後面加上ignore=y就可以了。
2將d:\chu.dmp中的表table1導入
impsystem/manager@TESTfile=d:\chu.dmptables=(table1)
注意事項:導出dmp數據時需要有導出表的許可權的用戶,否則不能導出。
PL/SQL Developer是Oracle資料庫中用於導入或導出資料庫的主要工具,本文主要介紹了利用PL/SQL Developer導入和導出資料庫的過程,並對導入或導出時的一些注意事項進行了說明,接下來我們就一一介紹。
導出步驟:
1 tools ->export user object 選擇選項,導出.sql文件。
2 tools ->export tables-> Oracle Export 選擇選項導出.dmp文件。
導入步驟:
註:導入之前最好把以前的表刪除,當然導入另外資料庫除外。
1 tools->import tables->SQL Inserts 導入.sql文件。
2 tools->import talbes->Oracle Import然後再導入dmp文件。
一些說明:
Tools->Export User Objects導出的是建表語句(包括存儲結構)。
Tools->Export Tables裡麵包含三種導出方式,三種方式都能導出表結構以及數據,如下:
Oracle Export
Sql Insert
pl/sql developer
第一種是導出為.dmp的文件格式,.dmp文件是二進制的,可以跨平台,還能包含許可權,效率也很不錯,用得最廣 。
第二種是導出為.sql文件的,可用文本編輯器查看,通用性比較好,但效率不如第一種,適合小數據量導入導出。尤其注意的是表中不能有大欄位(blob,clob,long),如果有,會提示不能導出(提示如下: table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead)。
第三種是導出為.pde格式的,.pde為Pl/sql developer自有的文件格式,只能用Pl/sql developer自己導入導出,不能用編輯器查看。
❿ 我的oracle系統資料庫重新建立了,找不到scott用戶,去安裝目錄下找scoot.sql文件也找不到怎麼辦
新建個用戶
scott是普通用戶 又不是sys之要新建用戶就行了當然 原來的表是沒了