plsql返回記錄集的方法利用table()函式—之二
今天在開發的時候,要找出兩個表中的不同記錄。我一般是用exists的,但看到也可以這樣
SELECT T5,T6,T7,T8 FROM TAB02 WHERE
T5||T6||T7 NOT IN
(SELECT T1||T2||T3 FROM TAB01)
把幾個欄位合併成一個欄位,雖然很SB,但可以解決問題。
下面是重點,集合物件,以前我都是用遊標來出來記錄集,但有了集合物件後就可以直接載入記錄集了,下面是一個使用集合物件record,table的例子
DECLARE
TYPE TEST_EMP IS RECORD
(
C1 AA.PI%TYPE,
C2 AA.PO%TYPE
);
type t_type is table of TEST_EMP; ---type t_type is table of aa%rowtype;
v_type t_type;
BEGIN
SELECT PI,PO BULK COLLECT INTO v_type
FROM AA
WHERE AA.PI <= 3;
for v_index in 1 .. v_type.count() loop
dbms_output.put_line(v_type(v_index).C1 || ' ' || v_type(v_index).C2);
end loop;
END;
下面我要解決怎樣用過程返回一個集合。
PL/SQL表---table()函式用法:
利用table()函式,我們可以將PL/SQL返回的結果集代替table。
simple example:
1、table()結合陣列:
create or replace type t_test as object(
id integer,
rq date,
mc varchar2(60)
);
create or replace type t_test_table as table of t_test;
create or replace function f_test_array(n in number default null) return t_test_table
as
v_test t_test_table := t_test_table();
begin
for i in 1 .. nvl(n,100) loop
v_test.extend();
v_test(v_test.count) := t_test(i,sysdate,'mc'||i);
end loop;
return v_test;
end f_test_array;
select * from table(f_test_array(10));
/*
2、table()結合PIPELINED函式:
*/
create or replace function f_test_pipe(n in number default null) return t_test_table PIPELINED
as
v_test t_test_table := t_test_table();
begin
for i in 1 .. nvl(n,100) loop
pipe row(t_test(i,sysdate,'mc'||i));
end loop;
return;
end f_test_pipe;
/
select * from table(f_test_pipe(20));
/*
3、table()結合系統包:
*/
create table test (id varchar2(20));
insert into test values('1');
commit;
explain plan for select * from test;
select * from table(dbms_xplan.display);
相關推薦
plsql返回記錄集的方法利用table()函式—之二
今天在開發的時候,要找出兩個表中的不同記錄。我一般是用exists的,但看到也可以這樣 SELECT T5,T6,T7,T8 FROM TAB02 WHERE T5||T6||T7 NOT IN (SELECT T1||T2||T3 FROM TAB01)
【轉載】plsql返回記錄集的方法利用table()函式—之二
今天在開發的時候,要找出兩個表中的不同記錄。我一般是用exists的,但看到也可以這樣SELECT T5,T6,T7,T8 FROM TAB02 WHERE T5||T6||T7 NOT IN (SELECT T1||T2||T3 FROM TAB01)把幾個欄位合併成一個欄位,雖然很SB
父程序利用fork()函式建立子程序並且利用shared_memory進行通訊的例項
#include<stdio.h> #include<unistd.h> #include<sys/shm.h> #include<sys/stat.h>
存儲過程不返回記錄集導致ADO程序出錯
sad () cad csdn博客 dset cts ref seo open HRESULT _hr = get_adoEOF(&_result); IsEOF()函數如下:其中ADOCG::_RecordsetPtr m_pRecordset; BOOL I
Postgres自定義函式返回記錄集(虛擬表結構)
CREATE OR REPLACE FUNCTION fun_get_real_inv_qty(pvOrderId varchar) RETURNS SETOF record AS $BODY$b
oracle pipelined返回值函式 針對資料彙總統計 返回結果集方法
/*開啟日誌輸出*/ Set serveroutput on ; /*建立型別*/ create or replace type type_flux_data_stat_o as object ( ifinoctetsbps number , ifoutoctetsbps number
plsql 返回結果集的儲存過程
--返回結果集的儲存過程 --1.建立一個包,在該包中定義了一個遊標型別test_corsor create or replace package testpackage as type test_cursor is ref cursor; end testpacka
C語言創建符號常量的三種方法;printf()和scanf()函數
c1、#indefine pi 3.1415926形式的宏定義2、const int MONTHS=12;這使得MONTHS成為一個只讀值。3、enum 枚舉類型4、printf()和scanf()函數使我們能夠與程序通信,他們被稱為輸入/輸出函數,(I/O函數)5、字符串、浮點數輸出的類型及介紹:實例程序:
createTextNode() 方法和createTextNode()方法
script 屬性 tno tle html creat uno 按鈕 文本節點 <!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鳥教程(runoo
c++作業實驗10第4章課後習題11遞歸(用遞歸方法求f())
ace 循環 中間變量 urn 裏的 調用 為什麽 區塊 不知道 // 實驗10第4章課後習題11遞歸.cpp: 定義控制臺應用程序的入口點。 #include "stdafx.h" using namespace std; #include<iostream>
什麼是方法以及evall()和isnan()和number()string()的使用
js在執行前,瀏覽器會給它一個環境,叫window全域性作用域 alert() prompt() confirm()都是方法 怎麼趙這個方法和屬性歸屬? 1、arr。find() find()是arr的 2、沒有帶. 在誰的環境下是誰的 判別變數的資料型別ty
JQuery繫結事件bind()方法和on()方法的優缺點
jQuery繫結事件的方法有四種:bing()、live()、delegate()、on(),其中live(),已經被淘汰了,其存在很多的問題,不適合使用,而delegate能夠在繫結事件後,依然可以新增動態元素事件。on()可以說是前三種方法的結合體。 1.bind()方法: b
事件繫結中的call()方法和apply()方法
今天對於call方法和apply方法有些懵,所以去看了些別人的總結,感覺有了點概念,把一些大佬寫的東西中自己感覺易懂的解釋和經典的案例記錄一下。 定義 call方法: 語法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定義:呼叫一個物件的一個
Map集合中value()方法與keySet()、entrySet()區別
Map<String,String> map = new HashMap<String,String>();map.put(“01”, “zhangsan”);map.put(“02”, “lisi”);map.put(“03”, “wangwu”);Collection<St
UnityEditor下檔案操作方法彙總(Unity3D開發之二十四)
最近經常需要些一個編譯工作指令碼,經常操作一個檔案。下面是一個彙總了的檔案操作方法。 using UnityEngine; #if UNITY_EDITOR using UnityEditor; using System; using System.IO
建立一個數組, 實現函式init()初始化陣列, 實現empty()清空陣列、,實現reverse()函式完成陣列元素的逆置。自己設計函式的引數,返回值。
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> void init(int arr[], int len) { for (int i = 0; i < len; ++i)
jQuery新增-append()方法和after()方法的區別
jquery的append()方法可以在被選中元素的結尾插入內容。這個意思是在該元素上做文章。 ex: $("p").append("hello,csdn"); after()方法可以在被選中的元素的下方插入內容,該內容重新起一行, 與被選擇的元素並沒有什麼邏輯上的聯
利用Tensorflow進行自然語言處理(NLP)系列之二高階Word2Vec
一、概述 在上一篇中,我們介紹了Word2Vec即詞向量,對於Word Embeddings即詞嵌入有了些基礎,同時也闡述了Word2Vec演算法的兩個常見模型 :Skip-Gram模型和CBOW模型,本篇會對兩種演算法做出比較分析並給出其擴充套件模型-GloVe模型。
android中EditText文字監聽的方法:addTextChangedListener()
最近遇到這樣一個問題,想把一個activity文字框中輸入的內容,在跳到另外一個activity時,這個文字框裡的值仍不變。我通過bundle進行了傳遞,但是就是傳不過去。在網上查了資料,原來是沒有用addTextChangedListener()這個方法進行監聽
PCL學習筆記——利用點雲配準CorrespondenceEstimationBase()函式找出兩部分點雲重疊區域
主要Classes: pcl::registration::CorrespondenceEstimation< PointSource, PointTarget, Scalar > Class Template Reference 主要函式: tem