ORACLE隨機從表中取一條資料作為函式返回值

2022-08-27 20:18:08 字數 1643 閱讀 1255

需求是這樣的:有一張經緯度表,需要從中隨機取一條資料插入另一張表作為其中的兩個字段。插入過程在儲存過程中,所以需要函式返回值為經緯度資料物件。

首先,生成返回值物件point_object,包括經度緯度。

--生成經緯度

create or replace type point_object as object

( longitude varchar2(128),

latitude varchar2(128)

);

函式point_function的過程就是定義select... into... from table,from是隨機抽取經緯度表中的一條。(沒有引數的函式不要加括號,不要加括號,不要加括號)

create or replace function point_function

return point_object

asradom_point point_object := point_object('','');

begin

select longitude,latitude

into radom_point.longitude,radom_point.latitude

return radom_point;

end;

select point_function().longitude from dual;

使用方法:在儲存過程中定義乙個point_object型別的變數radompoint,然後賦值radompoint := point_function(); 取值為:radompoint.latitude;radompoint.longitude

引用過程eg:

declare maxrecords constant int:=10000;

radompoint point_object;

i int :=1;

begin

for i in 1..maxrecords loop

id := get_uuid;

radompoint := point_function();

incident_time := get_date;

incident_disposal_id := get_uuid;

insert into incidentinformation

(incidentinformationid,incidentstateid,starttime,endtime,incidentactuallyaddress,province,city,latitude,longitude,incidenttypeid,incidentnumber,combinestate)

values

(id,7,incident_time,null,'113','0201','020101',radompoint.latitude,radompoint.longitude,'0120712',dbms_random.string ('a', 11),0);

end loop;

dbms_output.put_line(' 成功錄入資料! ');

commit; end;

MySql從表結果集中隨機取一條資料

該功能的實現基於 mysql 查詢結果中自動加序號列 select from select rowno rowno 1 as rowno,pwd from pur admininfo,select rowno 0 b tmp where rowno select round rand 1000000...

MySql從表結果集中隨機取一條資料

該功能的實現基於 mysql 查詢結果中自動加序號列 select from select rowno rowno 1 as rowno,pwd from pur admininfo,select rowno 0 b tmp where rowno select round rand 1000000...

如何快速從 List 中查詢一條資料

這是乙個很經典的面試題,其實考了很多點 首先先問問,你這個list是arraylist還是linkedlist 那麼為什麼要問這個呢,arraylist和linkedlist區別我就不介紹了吧,arraylist陣列結構,linkedlist鍊錶結構。arraylist 測試結果 for迴圈測試結果...