當前位置:首頁 » 數據倉庫 » oracle資料庫如何執行sql語句
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle資料庫如何執行sql語句

發布時間: 2022-04-04 06:59:46

㈠ oracle中怎樣執行.sql文件

建議使用plsql工具來連接Oracle資料庫進行表操作,這樣很方便的,就像使用sqlserver一樣方便

㈡ 如何將oracle資料庫的sql語句執行結果保存到一個sql文件中

set feedback off heading off term off
set pages 0 trim on trims on lines 32767 long 999999
set echo off
spool result.sql
Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
spool off
把以上部分放入一個腳本文件中再執行,會在當前目錄下生成你要的文件result.sql

㈢ oracle怎麼直接執行sql語句

Oracle可以使用SQL Plus進行執行,但是可視化不夠,建議使用另外一個查詢輔助工具PLSQL Developer,使用PLSQL Developer工具裡面各種可視化都很好看出查詢出數據的結果以及可以用這個工具分析SQL的執行分析。

㈣ C#怎麼執行oracle資料庫的SQL語句

如果是一般的查詢語句,C#SQL SERVER怎麼做的,和ORACLE也是一樣的;2個的區別主要在於儲存過程(SQL SERVER能做的和ORACLE就不能這么做,動不動就報錯);我最近也在研究C#怎麼調用ORACLE存儲過程,但是實例太少了(只完成了插入更新操作的存儲過程),查詢的哪個沒實現,如果你會這方面的話可以交流一下

㈤ oracle 怎麼運行SQl腳本

連接資料庫SQL> connect / as sysdba
運行腳本SQL> @/admin/XX.sql 這里的/adminXX.sql 是絕對路徑名, linux系統的話要注意 目錄許可權問題,windows就不用。

㈥ Oracle資料庫的sqlplus可以直接執行SQL語句嗎

Oracle中的sqlplus可以執行sql語句。

執行步驟如下:

1、首先要使電腦的oracle的服務和監聽處於開啟狀態,如圖:

㈦ 如何在oracle中運行sql語句

樓上是在命令行方式下運行的。
你可以直接運行SQLPLUS,這個去你安裝目錄裡面找吧(別說你找不著).
你如果沒有修改默認密碼的話,可以使用如下幾個賬號中的一種登錄ORACLE,但它們的許可權和和角色擁有的表都是不一樣的。這部分你可以去查書。默認用戶名和密碼如下:
sys change_on_install
system manager
scott tiger
前面是用戶名,空格後是密碼。
有什麼不明白的,請繼續跟貼。。。

㈧ 如何打開oracle資料庫使用sql語句

可使用第三方工具,如,plsql,可自行下載。

然後,在oracle安裝目錄下配置tnsname.ora文件

oracle10g為例,

路徑為:~oracleproct10.2.0db_1 etworkADMIN

加入以下內容:

本地實例名=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=主機IP或主機名)(PORT=埠號))
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=服務名)
)
)

然後,打開plsql,在資料庫選中要連接的資料庫,並填寫用戶名及密碼

㈨ Oracle中如何定時執行一條SQL語句

通過網上查詢,找到一種方案,就是先在oracle裡面對要定時的sql寫成存儲過程,再用DBMS_scheler對存儲過程進行定時執行。

在資料庫中新建了一個表MY_JOB_TEST

在資料庫中新建了一個表MY_JOB_TEST

在資料庫中新建了一個表MY_JOB_TEST

在PLSQL中,執行下面語句模擬存儲過程的調用,執行後要點提交才有反應

[sql] view plain

  • BEGIN

  • INSERTINTOMY_JOB_TEST(NUM)VALUES(1);

  • END;


  • 然後下面建立一個存儲過程JOB_TEST

    (注意,這里用戶需要CREATE JOB許可權,可以用超級管理員用戶執行下面語句給指定用戶賦予該許可權)

    [sql] view plain

  • GrantCreateJobTo指定用戶名



  • [sql] view plain

  • SQL>CREATEORREPLACEPROCEDURE

  • JOB_TEST

  • BEGIN

  • INSERTINTOMY_JOB_TEST(NUM)VALUES(1);

  • END;


  • (此處要執行存儲過程不能用exec JB_TEST,這種執行方式只能在命令行中使用)
  • 使用DBMS_SCHEDULER進行定時,這里為每分鍾執行一次

    [sql] view plain

  • SQL>BEGIN

  • DBMS_SCHEDULER.CREATE_JOB(

  • job_name=>'SCHEDULER_TEST',

  • job_type=>'STORED_PROCEDURE',

  • job_action=>'JOB_TEST',

  • start_date=>sysdate,

  • repeat_interval=>'FREQ=MINUTELY;INTERVAL=1');

  • END;


  • 但是這樣子定時任務並不會執行。
  • 我們可以用下面的命令查看一下scheler的狀態

    [plain] view plain

  • SQL>SELECT*FROMUSER_SCHEDULER_JOBS;

  • 此時我們可以看到enable的狀態是false的,因此我們需要去啟動定時任務
  • [plain] view plain

  • SQL>BEGIN

  • DBMS_SCHEDULER.ENABLE('SCHEDULER_TEST');


  • dbms_scheler.enable('j_test'); --啟用jobs
    dbms_scheler.disable('j_test'); --禁用jobs
    dbms_scheler.run_job('j_test'); --執行jobs
    dbms_scheler.stop_job('j_test'); --停止jobs
    dbms_scheler.drop_job('j_test'); --刪除jobs


    然後再查詢job的enable裝態,發現為true了。

    然後查看MY_JOB_TEST表,發現每分鍾會往裡面添加記錄。

    當需要修改定時任務或者調度的其他屬性時,可以用下面的

  • dbms_scheler.set_attribute('調度名','調度屬性','調度值');



  • 至此,定時任務完成。

㈩ 監聽oracle資料庫的執行sql語句的方法

#!/usr/bin/sh
export ORACLE_HOME=/oracle/app/proct/9.2.0
export NLS_LANG=american_america.ZHS16GBK
export PATH=$ORACLE_HOME/bin:$PATH

sqlplus -S "sasdda/asdasd@asdasd" <<EOF
set lines 180 pages 43 echo off feedback off
col sid format 99999
col event format a28
col machine format a15
col sql_text format a80
col user_name format a15
col object_name format a40
col owner format a15
col opname format a30

alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
select sysdate run_date from al;

select a.sid,event,wait_time "waited",seconds_in_wait "time",b.sql_address,c.sql_text
from v$session_wait a,v$session b,v$sqlarea c
where a.sid=b.sid
and b.sql_address=c.address
and (event not like 'SQL*Net%'
and event not like 'rdbms%'
and event not like '%timer%');

SELECT /*+ rule */ lpad(' ', decode(l.xisn, 0, 3, 0)) || l.oracle_username user_name,
o.owner, o.object_name, o.object_type, s.sid, s.serial#
FROM v\$locked_object l, dba_objects o, v\$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY o.object_id, xisn DESC;

select /*+ rule */ decode(request, 0, 'holder:', 'waiter:') holder,
l.sid, l.id1, l.id2, l.lmode, l.request, l.type, l.ctime, l.block,q.sql_text
from v\$lock l, v\$session s, v\$sqlarea q
where l.sid=s.sid
and s.sql_address=q.address
and s.sql_hash_value=q.hash_value
and (l.id1, l.id2, l.type) in
(select id1, id2, type from v\$lock where request > 0)
order by id1, request;

select lp.sid,lp.elapsed_seconds "elapsed",lp.opname,lp.sql_address,s.sql_text
from v\$session_longops lp , v\$sql s
where lp.elapsed_seconds>5
and lp.sql_address=s.address
and time_remaining>0;

EXIT
EOF

我把我以前的sql抓取腳本發給你坐個參考,可以自己寫一個crontab腳本,把上面語句甩到腳本裡面,自己制定抓取語句時間就行了,如果是10g或11g的庫,你自己在改一下語句。