I use create type [name] is object or type [name] record method . but Return different results? - oracle

I've been wondering what's wrong.
There are too many data in my table. I can't get them all out
In the 3 sql statements, the other parameters and conditions are the same except that [ t1 ] uses three different methods.
1.Mode1 is Physical table.
2.Mode2 is Create type Object.
3.Mode3 is type Record.
enter image description here
Table t1 has 900000 data.
Oracle database 12c Enterprice 12.1.0.2.0
Result:
I got an incredible result.
1. Mode 1 Result (Physical table) = Mode3 Result(Record Mode).
2. Mode2 Result(Object Mode) != (Mode1 or Mode3).
code:
1. create or replace type o_record is object ( a1 varchar2(100) ,a2 number ,a3 varchar2(50) );
2.creae or reaplce type o_table is table of o_record ;
In package space :
type r_record is record (a1 varchar2(100) , a2 number ,a3 varchar2(50) );
type r_table is table of r_record ;
r_record_mode r_table ;
In package Body:
create or reaplce package body test is
procedure main ( result1 out number
,result2 out number
,result3 out number
,para in number
) is
o_object_mode o_table ;
------------------------------------------------------------------
cursor cur_a1 is
select count(1) num
from **table1 t1** , -- Physical table (Mode 1)
table2 t2.....
where t1.a1=t2.a1
and t1.a2=nvl(para,t1.a2)
....
;
cursor cur_a2 is
select count(1) num
from **table( o_object_mode ) t1**, ; --Object (Mode2)
table2 t2.....
where t1.a1=t2.a1
and t1.a2=nvl(para,t1.a2)
....
;
cursor cur_a3 is
select count(1) num
from **table( t_record_mode ) t1**, --Record (Mode3)
table2 t2.....
where t1.a1=t2.a1
and t1.a2=nvl(para,t1.a2)
....
------------------------------------------------------------------
begin
select o_record ( t.a1 ,t.a2 ,t.a3 )
bulk collect
into o_object_mode
from table1 t
;
------------------------------------------------------------------
select t.a1 ,t.a2 ,t.a3
bulk collect
into r_record_mode
from table1 t
;
------------------------------------------------------------------
for i in cur_a1 loop
result1 :=i.num;
end loop;
--------------------------
for i in cur_a2 loop
result2 :=i.num;
end loop;
--------------------------
for i in cur_a3 loop
result3 :=i.num;
end loop;
------------------------------------------------------------------
end main;
end test ;
I can get the correct result by replacing [type object] with [type record].
It is so difficult that [type object] needs special attention and usage

Related

Could not insert a base64 string in a clob data type column

I am trying to insert a base64 string in photo column whose data type is clob but i am getting error
INSERT INTO myTable
(PHOTO)
VALUES
('data:image/jpeg;base64,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' );
I am getting error
Error at Command Line:9 Column:2
Error report:
SQL Error: ORA-01704: string literal too long
01704. 00000 - "string literal too long"
*Cause: The string literal is longer than 4000 characters.
*Action: Use a string literal of at most 4000 characters.
Longer values may only be entered using bind variables.
One possible solution could be to split the string in chunks by return carriage, then you insert and replace the return carriage by a null string. In this case, I use PLSQL
Keep in mind that I use for my example a very long string but different to yours
declare
vstr clob := q'[ 9j/4AAQSkZJRgABAAEAYABgAAD//gAcQ3JlYXRlZCBieSBBY2N1U29mdCBDb3JwLgD/wAALCAFIASABAREA/9
EA8ODg8eFhcSGSQfJSUjHyIiJyw4MCcqNSoiIjFCMTU6PD8/PyYvRUpEPUk4Pj88AQsLCw8NDx0QEB08KCIoKDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw
8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDz/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAnEUMoGRoQgjQrHBFVLR8CQzY
nKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE
xcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/2gAIAQEAAD8A9f3GjcaNxp+40bjTNxo3GjcaNxo3GjcaNxo34+bd8tYup+KdN092ill/eD+7XLy+
P7vzmK2iLErfxf3aoS+O9Znf/R2ggU/39tV/+Ez15nPlXy/L979wv/xNP/4TTWdi/wCm/Nzuby12/wDoNC+N9Y2bmu/l42t5a/N/47U8XjzUFkj3MjL/ABK0f/o
NdBYeO4J0XzbSbp8zr92ui0/VrPU0WSyuElWru40bjRuNG40bjRuP96jcaNxo3GjcaNxo3GjcaNxpaKKKKKKKKKjrF1rxLZ6V+7X97Ox27a8+1rxHealN/rfKXP8
AD92sFZol8xdzs2QzN/tU/wAyJoF3M7SsPlX/AIFUUWyRPM3Iu0fd/vf7tMaTy03LviikytEWz5V83duO35/4f9qrFxJBHujtV/cZH3qiikH+sbfuXFWopolg2/3
j92rEUlxbPDNb3bxcbVZJK6jSPGdxHfeXqD+fHj5tkfzLXdWV7b6hB51pKkq1PRRRRRRRRRRUlFFFFFFR1JUdL935q4LxJ4o+12wt9M+6zDMu/qvzVxF7JEs7bfmb
/a/3fvVn/wCv/cL8vO2pWWBU/dK6tzu/2qN3mI25vKVR8u+olZFRdvysx+8lWPtp/wBXKLtWT7q/SolkK7V3fLxT/L/cNI2/+7UsUjqiq2/9592rCtFJuVmdZcjaz
fwrWvp+p3Gmz7omeKXcPM/uyf3VrvdE8S2uoOsEv7q62jcv8Lf7tb9FFFFFFFFFFSUUUUUUUVU1C9i0+1a5uG+Va8+1fxHe6hdSQLL9liY7Ydv8XzfxVyK3B89o/w
DWqo2rVWVXb5fnXaad9mC/7TMN3+sq3FaD5Y9yMzEbd3tUvkjfJ5rbVV/++aZEoX+FGlb/AL5qwsKN8sSov8O5v73+zUTQj+7uZcsy/wB2q7WSNuVmdt33V/z6VLF
p1qybfN+Zf71NW0uo9vlLuVT/AAUyW2uF+ZvlVhu2p/dqurbXk3Rbtw+Zf7tWFmMjt5qp/u/3f92rtrdpO6/fWVcsrf3sV6j4c1WPUtKj3S/viiiiiivOPFXiU3ry
WNun7iNzub/aDVyKwz7/ALS33lHy09bYQJ8q7pfu7qd5J+VWb5VO2iKEr5ke7czYVlq3FaGT94v98fKu2pVsC3nMv8OdypH5jbv+BUW9lunVYt7Ny1OaPz0j+ZGib
5vmqKW08z5v7v8AD/eWoPsm3bt+8xO5alVSqfLs3fdpzM/95Pm+Vv7rUL+8RfNXv96pV0uK5fy9qRNIP4Kzb3QpbaBm/iX5dtVZVl2Rxy7938K/3sLT7W9uLGeGa3
Z1lZD5bf3l/u17NpWqWuq2QmtZUb+Fl/utV2ipKjqSiiiiiiiiiiiuS8Z6w9sn2S1lRWZD5leeLsZ2Zl3bj/H95qtxQ/eVfur/AA+Z607btSP5vWrUUKM6r91W/vf
w4q6tgF+X73Pzf7tOWEb9zfMv3fkjqx9ki2fLsZv/AEJf7tC2z/L5WxWb5V2U+W0ikf5d8S8r8/tWe1ptdtuzbn738NRS2x+98nyndu+lVZVEjtt+VuFX+7TW2L5a
/dZh/wB9VPbr/Cvy7sNWrbx+ZP8AMvy/3v71X4owyKu1FX+HbWbqGhRTwSbm3M2WVv7tctqFpPpU6wSqjfxf7taPh3U/7Bvlu1R2ik/dyL/d/wBqXFYNtZfu0+iii
iiiiiiiiiisbX9Yi0iwaR0dpW+Vdqfxba81v5Jr2aa5uvmZlO3/wCyoslSSCPa23cPu/8AxNXVj8jd833f4X/vf+hUzy9sG3+Jsbv71a9lCd6tuRl+9V2K0/h+f5s
fL9KtrabtrN91TUq2QXcy/dpjWQX5l3/L/DTZbRP9v/4qq/k/d+VGb73zfdqrdWRj+6qfvP8Ax2qUto/3rj+L+L/ZqvLbjft3bmx91v8Aeqxawv8A3flb5v8AZrXi
hC/kVq7FH8m3bT/L+7t96x9dsEntWVlf5gN2z7y1wiw/ZN1s3nK33v8AWfK3+7XoXgjVvPjbTZW3Sx5Zf9pd3+1XX1JRRRRRRRRRRRTGYKm5v4a8p1XVHvr6aRmfy
mwu3+78tRW//H15m7azfLt8z/x7dV1cNOu5kaKPHzU6WN1+ZfmibLfNVu1tw21fK+Zfl3f5atq3j+dd3zNV+KMLVhVH/AqGX+Kjb/sU1o6pNGW/9lpjY+7t28/LVe
WFF3bV2q3zNsqrdWwk+VWf/Z3VLFD8m1d67fu1dVdr/dqVc/Lu+7UqrRKoZNv/AAKuQ8Sw26uskqp+7Ibd9P4aybK7Omz293aq+5fu/wC0v3tteq6Zexalp0N7b/6
uRat0Uzn7tPoooooooorE8UXpsrGMJs3SPt+avN7eNNiqquyx/eq/EtvOjMsW3ah+VPvVoRR/8tFVF8wDc1Hlo26SX7uP++c1q28JZ9vyVfij/f1dVQv+63y0/aF+
Wjb97dRTGXd96q8sZ+8tQS/cZf4Wqo2fl3fdX+Gqsrf89f8AdqWJtyKu35l/hq15h+9/dqZW/wC+qnX760+sDXVtWRo71fl4Zm/u1zF1bvB5KxM7Rbx8391q6vwRq
O77RpbfL5Z8yP8A2lLNurs6KKKKKKKKKKK4Xxxfv9qjgi/5Zj/nnvrFW3Ek/wA2zylG75P/AEKrdrDEqTKtx+9U/NVrbuRlVd237tS26hU3NvbgblStKL7+32q2rf
8AfNWlp+6mbv4d1H+9RUTNtrPlY7/4P9qoGbzP+A/w1Du+833v4mVv/ZqFkDbWVv8AvmSnqx+78nzfKtWFYfwt/vfhVpW+RW3f7VWN3yK1ZuqwxTo0cvy7vl3J96u
GurK6juo2ibzYl+b/AHqk0KY2muWflO67ZYY2/wB12+61ev0UUUUUUUUUUn8debaqxk1W6+0b18vDN/y0X/gNRKySJ5211nxt+b+HNW1Uttbd8y/Lu/vVaVT91m3c
7V/2asRKNn3dqsd1WrdQ1XVx8tWFWn7qKZ8tNb5d27/xyq8sg3t9KryqF/h+XNReWFfd/F/eqvLGP9Z/dG1aY0Y2Nub0Xa0dHyL8q/KuD96pYmRX/L/dq8rf984qV
WPy/WqWoKG+X+78y/7VchqFt9h2yS/Nu+XbVNv+Prdt3Nn73+1/DXq+jy+do1lJu3M0C7m/4DV6iiiiiiiiiivLtVUtrNw23zYFH3fM+apbVg26NV2xMny7q0FysC
q0vm/3qn/56ff6/N96nxfNu+buKtLJEu7c23adtaETBvmWrC7P71H8FM3UNiq8v8P1pqx7vmb5v9qiVf3FV2Us/wAuxf4qZz/rG2VX8v5Pl+VaNp/u/wD2VG3bt2/N
/DVhcr9771WN33WouMNB935WrmNSjeefyfKfytn3qyNQhMHy7UVWA/4DXpPhr/kV9O/64J/6DWrRRRRRRRRRRXleuyD/AISSZVV24Dba0rWPy0aBW+7/ANNPSrqru
3fxbvlpssxV9rNt3f8AoIqlLdlX/dN97+Ks+KSVfmi+VVTazN/eoutdvINrfw//AGNVV8Sz71bd82f++q1YvFAnRVlbb0q+uvjz2XzUaJgGjatj+0YPlX/lq38NMl
YNt+b/AHqliuEX/a21FLcIv8W5m/75WqTX8Uf8W5v9iqsutRLPt/ib/wBBFZTeI5W2tbq/T5pW/drtpi+IyqR+bEiq2dzf3afF4hf/AFflbVzt3J/DXRaVdpqFpuX
Z8p+bbV/y/vbf96pdu5NrVi3unFdrLK+3H3v4q5HUFSO6aTd+9w/3v4a9L8L/APIr6Z827/Ro/wD0Gtiiiiio6kooqOpK8z8QKV8STeU21tgb/V/wmteK2ECL/E3O
6m/x/wB1ePl8uql0wbcu75cn/vqiK0lV13RbmjFF7o6X277Uzr/Ev7ysHUNCuo9rbnlb+7/drK+xBfvL+9prRmP5m+ZWPyr9aYtwY9rN8u01r6bqJg27pX6fdSteW
9Mk6/faL+JfMX5atLdvAny/NuG7/erK1DWn2SKrIqyYX/arn5dUl3/K371SfvVU852nVvnZf9r+KpVuJZNu1nVlH3k/i/2aFZ/ljVflYVYt7K6bduXa38TNJ93NbO
jyXFtuZm+Xhd1dppVwbm1XzW+b/wBCrQ2n9Kz9VXcm7a/y/N/wGuE1CRG1VvK/hA/4FXqujwrbaNZQr91Yl/8AQatVJRRUdFSUUVHUled+LY0tvEjSM26JoA23/a3
PW02fIVv7w/nVS4Xy4G/Gqqwz71a4/wB75K19Pt0XbtX/AGWb+9Wh9mH8XzVXuIR/3zWBqUMTJt/iXLM396ubntINjMvk/MfveZ96suW3K7tzJ8orS0+0Rn+XY3P/A
D0+7XR2+j+YnzLuVsfNVXUtNlg3fNu3A/8AAcVympKV2/3ud1ZiqW27V3Vdt4Xk+X+LP3a6nT/Dm7a3lJ838X92tiLR4o9y7f8Avv71Ma3Lbdv3l/vfxUyXTn/eMsr
t5n8NWNNmMG2Nl/df3v8AgP8AFXSKwbdVXUFLWjbWTcoNeeLCY9djgiZGZZ49u/8AibdXrsWVSPd97A3VNRRUdFFSUUUVHzv3buw+WuE+ItvJvt7iKLdkeXu/77ral
X5FZfdaz5f7vz1B5yfvGXe3O356cuu2un/eb5VxWbe/ECCB/wB1buy/9dKy7rxjrU9o1yunPFBz+98tttZv/CTXU7tHuRmb7u+mLqkrf63Yq/d+atO1ZLncsS/LgfN9
K09PthY3yrKz7cHbXbrIip8uysXUr1N+35Onzbq4zxBsaeRol+9n5qyrWyeR1X+981dNprWdim6XZ/47tWrcviqzj+6rsqmoW8XJPtVVRvMJXb5lQf8ACQj7V5jWj
r/7KtXLXxHayTqzfKuP++q29qMkbKvy4+WtKykH3fenXHzQSfQtXnmnsk+s2jbtzfaY9qt/vV63/dpKkooqOipKKKKZLII4Gkb+GuK8YXjXelCOe32rncrf3flrQb/j0
Vv++qoXC/uJJG+7j5q5jWr+Vd0duu5mJ2t8u3isOK0uJ763jume387/AJay/wANdXqXhm30PTY73T1e4njlDM38TLWTdeLtRuYPI+0J5Ej/ADK0f3lP8NT6PDb65dTS
agqRWtpEFj2fw1Qi0fU13TWkT3Vqp+Vk+8qiur8P6LbyWMNzu/2tqVNqGyC6h2/981at5H2LIy/M3ystVdQUtO38K4Py/wDAf7tcndWxg1KH/nllFrUaweRNsX3sBlX+6
v8AeasHUm3XX2TTLd7j7OP3jJH97Fa17o+neHPsdzqyPq7SIfl/5ZRt/D8tU9X1HRNQmWODRobWCM+ZuSP5m/2flqK30eLUEvZtP3r5ZHlr/rFrIlWe2nkjuN8Usfy7q2
tH1+W2RYLj5ov9v7tdxpVx58CyL8v8LVtXWPsszf7BrkvA+l/ab5r2VXaOM7l3f3tz16LRRRRUdSUUVHRVXVbQ3umzWyvskYfK30rgbK/fVdKa21NfKvIR8y/+zV1NxlU
X+Km+SGgamW9lFG7Sbfvf99VE1lBPO32iJKlt9lsiqv8Aql+X5v4a5u90vw557N5TrPnc0UO7/wBBpixwKm1Ynt4FPy7v4f8AgP3q0NNsop0aOJX8pgN2yT5WxWldSQaf
a+XEzxKo2r/s1kL5tzfeZu+6AtaW7/a/3lqrLIjP/s1U1KyE6bvk/vKz1Qiu92mtHu+bn/pmq4q/pVlFaWknlS3X77G5V/hzRqH2Wex+yXrO391m+9trnP7Hi8+Pyr5GX
IVtn3q6ayU2yfZNPbyosDczbada6BYtdST3W+WVhuZm/vVQl8MwRvuiX733a2vD9l9hTy2/3a3L1Q2m3St93yn+/wD7tcjpsN15FutvdzW65HmRJ/kV3OlSFrXbu3eXhd
zVcooqSio6kooopjf6tq8i0Rri+1Wa52v8qeXuau9ul3fxURN8m3+H7tWG+Z6b5Yk+981V2tH/ANiopbK4+XayK33fkquuko0/mXDPLtx977taDSD/AFcS/drHuI3V22/N
0+5UUsiWm1m+Xj/vqoluH3x7vm3H+L+9/wABqWLP2pfv/MQu2rTKNkfy/MoNZrWnlz7l+aJgd391atWv+jOu7/VMv3mq3cWUVzt/2sfd/irFl0I/dZUbj73+rpy2Ev7vcz
7Vy1atlD5D/K33vvVd2/PuqaJf4ttXJV3QSL/eQ1wOsasbSxVl/wBb92NX/vD+79K7nwor/wDCKadJL/rZoEkb/eK1r0VJUdFFSUUVHUlcbqFolokltaLt8xw0n+1V/UPu
L/FUUTfd/h3VdX/ZWpfvf+zUcLTWY/wrTGjMn+9Q0aRwNWLL825dyLtNZVwvmT7mb+DbWha2EvkR+U3zY+9/s1L9k2v/AB9lq3FGdi7vvLn5qY0e5KZ5Y2bafbs6/K33f7
1DTCTarLtp/wB7cy7PmH3ql2/d/wC+W2U7+NfpVhYwyfd+WpZV/cN9DXA+K1tb7wvYalpku5bSfa2z/bb5v/Hq9D0SMweH9Phb70dtGrf981doooooooooqSsfUI0kn3bf
mWq90paBfuVFF99v4f8Aeq1Fj/vqrG4U371G2nUyVd33vu1z2qyBXaNd+5jTLWEtdbt3y4Hzf3q6qKMRp81V72Pcny1EuF+WqVxmP7q+u2ofODbtrIy5+b+9U3Dbf4uR96
jy0Xd8vysPmpnH/Ac/NT1b+L/PNSq27+H/AIFVqL/ZqVvuVxem2D/8THSJf9V9ph+VfeXdXo6rt2r/AHRtpKKKKKKKKKkorldakMGpRyeb97C7f71WLpf3C7l+ZTVeJhvX
cydfvVaWQ/wruqVW/wDHv4asf+PU2pfvVDL9xv4VrAW0SeeSa6+b5yyq392ori4ia6WCJvmx95albWJY9u75V4Zt1RXHiHcnyrt/2qzZdWlg3XP2jdE33tn/ALL/APrq1o
+vxXKeXcfe/hq7dLFBdrIv3ZB/BViJgz/K27n/AL5qX+P/AMeprNu/3V/vVCyhvut81Kuf4vm/9Bq+rfw7v++qsfwfN92s/RY/P1W4mb2b/wCJrpKKKKKKKKKKKkrl9dkE
bs0sW5VG5afFMJ9Njb+Fk3VVaQK/zN8v8NSrIP4tm2rUTfJ/Buare77tJu3VN/BVe4+WBv8AarzvWtfntkkgXerKfu/8CrlLVdYadZoldv4Wrf1LUfM/d+b82R/y0+7VLz
i0Ei/61cH722qusXFxcpDbRf6qP+FP71Urf7RBu+ba33VruNEke5tVWVvlX5V3f7v8NdFFJudfmRf71S/eT7v3v+mdN3De21aYzHf91P8AaoaQsm1v+BbqsRNt/wBnrV24
U/YZlX73lPUXheMrBuZXVsbWVq3qKKKKKKKKKKKyNd06a78uS1+8pG5arrGV01VaLyto+7/drNuPlRt33VO6nxM6/wB/5flq1FIf97+7VtWOz5acrf3WqZpKqXEw2Mq1yu
saAl88kkX7pm+arGj6FBp6N5v+kN/eqXVdF0y7tGjiVIpc/erD/wCEOeNF3Xf/ANlTG0WCT5V/dLwu7/LU218L+XOsksu7aN0f92tq3t9u7b93/wBlq/Ev3f8AllT1+58y
9j8tMb5UVWV23GopW3bV27f9qm+cPP27fXbV+Jt25f4v9qruoSGPTbpvu7Yj81S+H98lq1zLLu8zFa9FFFFFFFFFFFFU9SX7rVzt0o3/ADKnmr93d71VVtu7zdn+0qVPbz
RKi/N977v41dVgr7asbt33aezbv/ZapN/FuqvLMFRvmfav3v8AZqq12nzKrIv+5WfLd+fPHH7j9K0NQu/kVt27cNq1mLcD7d83yt/D/vVpRfM+3du3AbtlWNu3738JqxtP
8LVE2NjKy7eKiuGG9tu/dVRvln8z5933fm/hobLT/LvrTt4yvy7e9a8tp9rtJLbdtVhtartrbJaWiwRfdWp6KKKKKKKKKKKKgvYxJatu/h+aubus72Vf/wBqqO4Sfd/h+W
T/AGqIm+78vlKvy7qtxSbf4u1WuV+b+7Q2Nm7+7VK4uBHu+b5s1SWO+1J1+zrtikI+Zv8Avr71adv4cs40b7Qz3DMd1MuNFt96+Uzqqmqv2SBd3ms7f7lQ/ZrVdzRSurNl
dtRbXg+b5FViPmq6sx3qu19q/wANWIm/yn8K07htu3ZUVxhflX5lWqTb2fa3zNT/ACfkXcu5l/76/wD2a0rVdv8AD90Vv2v3N1WqKKKKKKKKKKKKKay7kZW/iFYF1jeyt8
u2sWVjv3L93JZqZ/e+b73973qVfl+VflZjWhuEaL81V5WMny/e2/8ATT1qJlg37r2VGZQFVau2+qIqeWv3vurRcaokHl7m+VjRb3HmJ8retZ9xepHP97/9moLi/DfNtSV
V+bdVdtRGzauyJvvfNJT4r23kSRf9VKtQremPdt9RHt8z/wAeraWT5Ny7P+AUSyBk+9VX+P5vm61at12/wuy1dt127tvv81dBEu1FWnU6iiiiiiiiiiiiisjWFEc6tt+WT+K
sC6X51VpX3ZP3KpNIP+Ar93f7VYXDOq7trN81StcbYGZWSsPUNRECSN/F/EtYen3F/qGpfKryysf+BLmtmXRdWnnZWZFVafceHtWa1X5kl242slZrSarbIrbX+bKtsqgzX0k
7KsU3zU6WHU/3kaq+371V9t8u1WWZeC3/AAKoPtbrOrbvmrX0+/lZ41l/4DXQ2V6disuzvurQlkdvm/hzu+eq+5F3f7X7zdV+3y237nfdsrV0+Pz32/w/eatqinU2nUUUU2n
UUUUUUVBew/abVlX7yg7a5W4Usnzep3NWK0m1Gkbe0uflqxattf5l+Zc/cqu1wdkjRN907m2f+y0+3x58c7fMqkfe963LdbOS6jkVUilX/wAerVt2iZ2VvvVd3RbKqy2lnJt
ZlRWb5aJbSzX5lVNyjbuqv5duu77m3NVZVt5EZV2NuH8Fcxe2GnW19JcqqNP97a33WzWNcYW6jZV9P0q9as/nqsu/5vu/7P8A3zWm0m3zPK2bv4f/AGaofORtv+zlfnrYt22
wfeRdo2/NXSaVCYIGZt7NJ83zVdooop1FFNop1FFFFFFFc9rtuFdmXZtkB/76rk723P8AE23aPm/d0K23b83yyf7tRSt87bvJ/wBmnecnzL97pub+9VeW4eOfzIm+6S3yVq2
uv/J5dx8sq/K1aS67FIn+tRl/2P71PbUbVX3eany4qve6xbqjSLKjfL92sXUNaRtvlN8qg/8AAqptrTqm2Jnqq128iMzL+9z/ABRr3pm7c+5WTa3y/wC822rEUw37tqNwf+A
rWjul2NtbauP4PZqfar+//veZ/DXSaZbG5nXd8sSj95/tZrp6KKKdTadRTaKdRRRRRRRWRrDDz41/hYHdXO3UJ+b+Ld8tZcreRubdtVqpSsVdlbf+7xuX+7UUskreY3mv82N
27/dqBpD9kZd3+9/s1ntlf4vlb7y1XaSdvl3O3Sq/nXH8XzLTfMlbb/tf+O05Wf8Aiqa33yf391Wlbb/u/wAWyrG4qjR7vu/+hVYiY/eXftX7v7v7tair/seirV+yj+8qrtl
U/NXX6PNZ/ZPskEu6SH5ZF/i3VpUUUUUU6iim8b6dRRRRRTZWdYGaJd0ir8q/3qfu/vVi6lMk7rt+ZVytZVxlk3L/AOOVi3sZX5WVGXBb5v4apSxlt0krPu5/76qJowv+1z9
2m/Zvkbd8v8Kt/dqe30sM/wA33V+6396r66BFsXd97FNl0Wwjg2yy7WX5v+BVl3Gl2/zfvU+X71Z8ulovmKsvp8v+1UH2KWP+58oNSrD5abvN71KqhkXb/Fhtr1dt8K/737v
G6rkUjyPt+Tdzt31sabbiN1bbuZvvfhWPp+o7fE96u75vtMjLXo1vMJ03LViiiiinUU2jmnVJUdFFFFZ2q3G2Bo1bbwd1YUU32m0Vl+bcTT2/h/h/9mrK1BfkX+Ff/QazZcK
nmfIvNMZv4f733f8AeqVWiWCSRW3Lk7qFuNsG7+JfmWntrX93Z027apS6oW+bzUlVht3eXUX20/6tvl/2qbcTBtu3YrZP93/x2hpom27tm5fvK9ObG/5f4fu/7K1E0m1927bu/ib7
rLT4syT7vuxKu3/ZrRt4/nVfvLkN/wACFdFZZX5mb/gVedWUm26urld+5p5P/Qq9P0e7LIvzfdB+9XQK25Plp1FFFOooptOoooooqCeby9y/xVyviK42wSMzdizVQ8LzfadChkb7r
E7q1dvyLuqGWMbNrL+6b71ZF7bOqSNEz9D8v8Lf7NYzSOz7l+9nayt95flqJrgKkm35lyN341D9rdn+8i8/89Kq3E3yfx9d3zVV85/4v/2qcsm12ZlRv+2lS/aCr7lbt/wJqeszq7
bl+bFS/az8rbvmzu2/NQuJ925vK4/76rVijKoqyruZfm/2av2X7tI9yurN96tfd5drcTNv/dxFq860pvnX+LcT+tdxa3Zg2szeq119lcBtv92tKiijdRRTqKKKKKKVm2/NWPcSf+P
V554wvS07W25/mzWr4MXb4Xt/4V+9W5xsVW/76oZfn+7tqrKoZGVt6q39azbrTomfav8AED830rAvbDyLVmVty53SbPvVis38Lb9tV2kPy7f4qbuP3fpRu2v81CybvmX/AIDTl376
t2tuWf5vl/u1tWtsWRv++mb+61XIlOxlX/VN95f7tWrdir/7K7FX/Z/3qsarMbbw/ezL/ChVfxridKjOxd2zbjbXSLM6zq3yKuP4K6nSpB+72/LuG7bXRW8nybasUUUUUUU6iim0M
wVNzVSaYyJu/hrNvZDHAzf3R81eW+KLjddLJ/FJnc1dX4Pwvhu1/usm75/et9f4dzVL9522rUDRld21vlX/AL6qo38S7UqLy9yL8yMv8X7v71Zsthbz/NL/AKpSY6oar4egW0W
S0/dN/wAtF/2a5PyS3+7QsO7b9yr8VkGRvl3LmtCKML/f6DctaMUab1ba+7nctNlZNkcm7dztp0XzOqr8rKNrN/D96tJVCv8ANs3MPvJt+asnxRMW0q4VtjMuF/8AHqyNHXd5e7f8
2d3/AHzW35Zk/ef8BrotNkKuq/xN/DXS27fJuq6rbkp1FFFFFOoptG4VSuJCz/LUUrBYFXbWbesPIb/a+WvKvFC7b5dvzfOW/wDQK7PwopXQrVW+9sFb8SlU3fxVL/Gu1vlqKVUZP
mZF5G3/AGqpXUb71/h/2v71N3Dfu83cymqksg2bvkbn7yf5/rUXmPGiq2+WJvvVzMqhn3bfu/3v8/eqpuG9V/iqwuG3NKz/AO6n8XzVdiY/6z7u3+L+LmrDMV+6vzKDtpyxld3zbV
X+593/AGqsbh8sar6/cpzKVeRf7pG7/arG8RMWsfLbf8x+Xd7VFpUYby9yo3+9/u10LL8jbvm3At/vfw1d0dRv/g3fd3eZ96unt/lTbV9amVhRQtO3UUUUU1pBH96qTXG77q0RSbv
mqGXDf7q1QuvvzfiteZeM/wB3rK/N8uP4P71dN4U/5BVuv3fkT/0Guki+58v/AHzT2UfLTN3ybv7tV5W+fbt+Vhu3VSlhdfm/5ZL/ABJ/DVVmK7f4uPvVm3Vx5fzfw4+9WHLcS+ez
Kvzcf+g1X8w71+b5m/vVKqiN9v3f9qrcTBd21f3v8X+7WguF+98zZ+7/AHc07du3fK+1fvfvP/Qanix8qxe3/Af7tMlZF3eb/wB8/wAW6ue8QSfdWtjSrYRwLIu/purW2jZGzfMv9
2tXTF2ou1vu/wAL1r2rH7vz/wDAqu8/xU9vmTdQsn+1T/MK/wC7UqyBqfuoqi1+W+WKL/gVRJe3Uj/vVRV4+7Rz96m7f71OX5d31pvLfw/NVK6zsZtvzV5544hl8+OZl+Zidrf98V
r+GpP9Ejj+f5QGrp1y3ysv/fVS7v8AKVFuPy/+yUyX5v7/AFNV5VMaK21Opqq0Y3tJt8rd/D/erKvYfL+791vlrGuLcN96Ldx8uz+9VdYSu3+FmP8A3zT1j/1a/e2n/gNTqo/2F4q
3/tNv3fwr/e/z9al5+6u/p/49QzBtvyv8ufmXdTJW8vczK67T97/7GuevW8+eH5flz/F/vV12nqFgjXdu/wByr6w7kZm/dLj5q0rWE7G2qityyq1Ytv4ss2uljaXyufmby/lrrLXU
Uk8tW/5afdZPu1prUTLt+VvutRzSKu77rbamViv+7Uu6sdV+fctPaR2/9mWhZN3+zUvHyt/EtP3f7VV2bdu+b5ar3CjY23/vlv4q57xRYG50aRfK+Zgdq/3WFYHhe4KvtZU/3mrto
vm+7T9259rb9tM8wsis38Xy/wC781MlUf3fvZ3VFt3O38Srn/8Aaqvu3Jtb+HNUrqP5F+X7pH3P4qybiP5I/wB6m1vu/wC1UUtuI/l+7u+7UPG9t3qG3VYiVNitF6/L/wAs6N3yM3y
My/w1YZdvy/3vvf7NRKw37V3r5f3m/i21Xupvk/urztrN02PzNZj3K+2P5mrvbW2Pyr/CuP8AgVXfLLPt/wCBbf8AaqLWr0aZoV1N/EqFY/8AaYr8teZW8PmPtX7zEfN/eru/C8yLYrb
XC/Z7pvmjZvuy4rXstR23zWzK9u3/ACz3/dl/3a34pBco395fvU2KT5Pm+9ipd3+1QrU/dWb5h2baZu+T5vajzP7vytirC42bfuqtG4/wtUX/AAF6Yy/P81Yuu4Xy1+euUlj/ALP1VWV
f3FwSy7P4a6vT5tyK25KsNIPmaL0H60MwVP8AW/8AAU/ipjSBflVvm5+X+7TFYq7bm3Lk/wDAaguF8v5t
33j97zPL25qlcNudW2urfxf7NUJZPuwrvZs7m/z/APXqk0gj3fLt3H5v9qomkO/d97cRUtv+8fayuu771WGYqkfzbdv9aiZSqbV/iP3Wpm4xorfOu0bvyqrdNu2rt27f+mn3q1PC9
gfmudv+sPy7vau2t/ufd+XG1f8Ad/2asSsF+98u37tch44m8z/iXr/y7kMzf3mK1zNlaFv3n/Aq6u1jLWLWjLubAZVb+9VJoZ5EaO4a62qdu3zPu11llduqM3zyyrlm/wBpa0L2Sa
Pbc2ipL/z03SUz7W6p+9t32/7FTW9wkjsqt82Pu/xVaXOz5q//2Q== ]';
begin
insert into t ( c1 ) values ( replace( vstr , chr(13) , '' ) ) ;
commit;
end;
/
Then you run the script
SQL> desc t
Name Null? Type
----------------------------------------- -------- ----------------------------
C1 CLOB
SQL> host cat insert.sql
declare
vstr clob := q'[9j/4AAQSkZJRgABAAEAYABgAAD//gAcQ3JlYXRlZCBieSBBY2N1U29mdCBDb3JwLgD/wAALCAFIASABAREA/9
EA8ODg8eFhcSGSQfJSUjHyIiJyw4MCcqNSoiIjFCMTU6PD8/PyYvRUpEPUk4Pj88AQsLCw8NDx0QEB08KCIoKDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw
8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDz/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAnEUMoGRoQgjQrHBFVLR8CQzY
nKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE
xcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/2gAIAQEAAD8A9f3GjcaNxp+40bjTNxo3GjcaNxo3GjcaNxo34+bd8tYup+KdN092ill/eD+7XLy+
P7vzmK2iLErfxf3aoS+O9Znf/R2ggU/39tV/+Ez15nPlXy/L979wv/xNP/4TTWdi/wCm/Nzuby12/wDoNC+N9Y2bmu/l42t5a/N/47U8XjzUFkj3MjL/ABK0f/o
NdBYeO4J0XzbSbp8zr92ui0/VrPU0WSyuElWru40bjRuNG40bjRuP96jcaNxo3GjcaNxo3GjcaNxpaKKKKKKKKKjrF1rxLZ6V+7X97Ox27a8+1rxHealN/rfKXP8
AD92sFZol8xdzs2QzN/tU/wAyJoF3M7SsPlX/AIFUUWyRPM3Iu0fd/vf7tMaTy03LviikytEWz5V83duO35/4f9qrFxJBHujtV/cZH3qiikH+sbfuXFWopolg2/3
j92rEUlxbPDNb3bxcbVZJK6jSPGdxHfeXqD+fHj5tkfzLXdWV7b6hB51pKkq1PRRRRRRRRRRUlFFFFFFR1JUdL935q4LxJ4o+12wt9M+6zDMu/qvzVxF7JEs7bfmb
/a/3fvVn/wCv/cL8vO2pWWBU/dK6tzu/2qN3mI25vKVR8u+olZFRdvysx+8lWPtp/wBXKLtWT7q/SolkK7V3fLxT/L/cNI2/+7UsUjqiq2/9592rCtFJuVmdZcjaz
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 ]';
begin
insert into t ( c1 ) values ( replace( vstr , chr(13) , '' ) ) ;
commit;
end;
/
SQL> #insert.sql
PL/SQL procedure successfully completed.
SQL> select count(*) from t ;
COUNT(*)
----------
1
SQL> select length(c1) from t ;
LENGTH(C1)
----------
13691
SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

Why is the output only the last value? Oracle loop cursor

I'm trying to output a list of the courses a professor teaches, by receiving the prof's id by parameter to my function, and showing all courses, each separated by a comma. For example, if a Professor teaches Humanities, Science and Math, I want the output to be: 'Humanities, Science, Math'. However, I'm getting just 'Math,'. It only shows the last field that it found that matched with the prof's id.
CREATE OR REPLACE FUNCTION listar_cursos(prof NUMBER) RETURN VARCHAR
IS
CURSOR C1 IS
SELECT subject.name AS name FROM subject
INNER JOIN course_semester
ON subject.id = course_semester.id_subject
WHERE course_semester.id_profesor = prof
ORDER BY subject.name;
test VARCHAR(500);
BEGIN
FOR item IN C1
LOOP
test:= item.name ||',';
END LOOP;
RETURN test;
END;
/
I am aware that listagg exists, however I do not wish to use it.
In your loop, you re-assign to the test variable, instead of appending to it. This is why, at the end of the loop, it will just hold the last value of item.name.
The assignment should instead be something like
test := test || ',' || item.name
Note also that this will leave a comma at the beginning of the string. Instead of returning test, you may want to return ltrim(test, ',').
Note that you don't need to declare a cursor explicitly. The code is easier to read (in my opinion) with an implicit cursor, as shown below. I create sample tables and data to test the function, then I show the function code and how it's used.
create table subject as
select 1 id, 'Humanities' name from dual union all
select 2 , 'Science' from dual union all
select 3 , 'Math' from dual
;
create table course_semester as
select 1 id_subject, 201801 semester, 1002 as id_profesor from dual union all
select 2 , 201702 , 1002 as id_profesor from dual union all
select 3 , 201801 , 1002 as id_profesor from dual
;
CREATE OR REPLACE FUNCTION listar_cursos(prof NUMBER) RETURN VARCHAR IS
test VARCHAR(500);
BEGIN
FOR item IN
(
SELECT subject.name AS name FROM subject
INNER JOIN course_semester
ON subject.id = course_semester.id_subject
WHERE course_semester.id_profesor = prof
ORDER BY subject.name
)
LOOP
test:= test || ',' || item.name;
END LOOP;
RETURN ltrim(test, ',');
END;
/
select listar_cursos(1002) from dual;
LISTAR_CURSOS(1002)
-----------------------
Humanities,Math,Science

Merge statement without affecting records where there is no change in data

I have a stored procedure that takes data from several tables and creates a new table with just the columns I want. I now want to increase performance by only attempting to insert/update rows that have at least one column of new data. For existing rows that would only receive the exact data it already has, I want to skip the update altogether for that row.
For example if a row contains the data:
ID | date | population | gdp
15 | 01-JUN-10 | 1,530,000 | $67,000,000,000
and the merge statement comes for ID 15 and date 01-JUN-10 with population 1,530,000 and gdp $67,000,000,000 then I don't want to update that row.
Here are some snippets of my code:
create or replace PROCEDURE COUNTRY (
fromDate IN DATE,
toDate IN DATE,
filterDown IN INT,
chunkSize IN INT
) AS
--cursor
cursor cc is
select c.id, cd.population_total_count, cd.evaluation_date, cf.gdp_total_dollars
from countries c
join country_demographics cd on c.id = cd.country_id
join country_financials cf on cd.country_id = cf.country_id and cf.evaluation_date = cd.evaluation_date
where cd.evaluation_date > fromDate and cd.evaluation_date < toDate
order by c.id,cd.evaluation_date;
--table
type cc_table is table of cc%rowtype;
c_table cc_table;
BEGIN
open cc;
loop -- cc loop
fetch cc bulk collect into c_table limit chunkSize; --limit by chunkSize parameter
forall j in 1..c_table.count
merge
into F_AMB_COUNTRY_INFO_16830 tgt
using (
select c_table(j).id cid,
c_table(j).evaluation_date eval_date,
c_table(j).population_total_count pop,
c_table(j).gdp_total_dollars gdp
from dual
) src
on ( cid = tgt.country_id AND eval_date = tgt.evaluation_date )
when matched then
update
set tgt.population_total_count = pop,
tgt.gdp_total_dollars = gdp
when not matched then
insert (
tgt.country_id,
tgt.evaluation_date,
tgt.population_total_count,
tgt.gdp_total_dollars )
values (
cid,
eval_date,
pop,
gdp );
exit when c_table.count = 0; --quit condition for cc loop
end loop; --end cc loop
close cc;
EXCEPTION
when ACCESS_INTO_NULL then -- catch error when table does not exist
dbms_output.put_line('Error ' || SQLCODE || ': ' || SQLERRM);
END ;
I was thinking that in the on statement, I could just say something along the lines of:
on ( cid = tgt.country_id AND eval_date = tgt.evaluation_date
AND pop != tgt.population_total_count AND gdp != tgt.gdp_total_dollars )
but surely there's a cleaner / more efficient way to do it?
The otherway you could do it is use ora_hash to get a hash of the row. So your where clause could be something like.
where ora_hash(src.col1 || src.col2 || src.col3 || src.col4) = ora_hash(src.col1 || src.col2 || src.col3 || src.col4)

PL/SQL 11g > Getting Data into a Table of Records Object

I'm trying to pull data from a complex query (it's been simplified here for review) using custom RECORD and TABLE OF RECORD data types, but I can't get data into the table due to a "PLS-00308: This construct is not allowed as the origin of an assignment" Error. I've followed the examples carefully and don't understand the problem. Can anyone point me in a direction.
here's the code
TYPE CORE_REC IS RECORD
(
OrgID CHAR(20 BYTE)
, StoreNumber VARCHAR2(200 BYTE)
, StoreName VARCHAR(200 BYTE)
, AssociateName VARCHAR2(300 BYTE)
);
TYPE CORE_REC_CURSOR IS REF CURSOR RETURN CORE_REC;
TYPE CORE_REC_TABLE IS TABLE OF CORE_REC INDEX BY BINARY_INTEGER;
FUNCTION CORE_GETCURRS (
OrgID IN CHAR
) RETURN HDT_CORE_MAIN.CORE_REC AS
CurrTable HDT_CORE_MAIN.CORE_REC;
i BINARY_INTEGER := 0;
CURSOR CurrCursor IS
WITH
CoreCurrs AS
(SELECT
busSTR.id AS OrgID
, busSTR.name AS StoreNumber
, busSTR.name2 AS StoreName
, emp.lname || ', ' || emp.fname || ' ' || emp.mname AS AssociateName
FROM tp2.tpt_company busSTR
INNER JOIN tp2.cmt_person emp
ON busSTR.ID = emp.company_id
WHERE
busSTR.id = OrgID
)
SELECT
CoreCurrs.OrgID
, CoreCurrs.StoreNumber
, CoreCurrs.StoreName
, CoreCurrs.AssociateName
FROM CoreCurrs
;
BEGIN
DBMS_OUTPUT.ENABLE(1000000);
OPEN CurrCursor;
LOOP
i := i + 1;
FETCH CurrCursor INTO CurrTable(i);
EXIT WHEN CurrCursor%NOTFOUND;
END LOOP;
CLOSE CurrCursor;
RETURN CurrTable;
END CORE_GETCURRS;
The error gets thrown at the FETCH statement.
Your variable is the wrong type, it should be:
CurrTable HDT_CORE_MAIN.CORE_REC_TABLE;
At the moment you're trying to select into an element of a record, rather than element of a table, which doesn't make sense. When it's defined as CORE_REC, referring to CurrTable(i) doesn't mean anything.

Oracle Function .How to compare previous value with Current value

My Source Data
ename Age
BAL N
BAL Y
BAL Y
YUV N
YUV Y
NAR N
Logic
if ( (ename <> Previous_Ename or Previous_AGE='N' ) then AGE = as is
Else AGE='Y'
Could you please let me know how to code this using Oracle funcaiton? i tried but in all case it not showing the desired result set.
i used
create or replace function () RETURN
VARCHAR2
IS
previous_name VARCHAR2 (9) := 'DUMMY';
previous_age VARCHAR2 (9) := 'Z';
BEGIN
For cur_rec in (select ename, age from tablename order by ename) LOOP
if ( cur_rec.ename <> previous_ename or previous_age ='N')
then return cur_rec.age; /** it is populating the result set with only "N"***/
else return 'Y';
end if;
previous_ename :=ename; /*** not sure whether this assignment is correct- im trying to assignt current value as previous value for next row reference.****/
previous_age :=age; /*** not sure whether this assignment is correct****/
END LOOP;
END
REsult im getting:- actually the result should be same as Source for this data scenerio
ename Age
BAL N
BAL N
BAL N
YUV N
YUV N
NAR N
I still don't understand what you're trying to achieve here (at all)... or why
The problem is that you're trying to to this in a function but you're returning the something almost immediately. By your order logic (in the comments) the first value will always be N because that's the first value in the ORDER BY. For every record in your table this will be true.
Use a MERGE statement instead:
merge into tmp n
using ( select rowid as rid
, ename
, age
, lag(age) over ( partition by ename order by age ) as lag_age
from tmp
) o
on ( n.rowid = o.rid )
when matched then
update
set n.age = case when lag_age is null then age
when lag_age = 'N' then age
else 'Y'
end
;
SQL Fiddle

Resources