Xử lý dữ liệu bằng Java trong Oracle
Số trang: 7
Loại file: pdf
Dung lượng: 201.02 KB
Lượt xem: 6
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Oracle luôn là một công cụ hay ứng dụng tốt nhất để xử lý dữ liệu? Câu trả lời nằm ở bên trong những gì bạn thực hiện. Thông thường, dữ liệu được biến đổi thông qua ngôn ngữ xử lý dữ liệu, ngoài ra nó cũng có thể được biến đổi thông qua việc xử lý các chuỗi hoặc số.
Nội dung trích xuất từ tài liệu:
Xử lý dữ liệu bằng Java trong OracleXử lý dữ liệu bằng Java trong OracleNguồn:quantrimang.comOracle luôn là một công cụ hay ứng dụng tốt nhất để xử lý dữ liệu? Câu trảlời nằm ở bên trong những gì bạn thực hiện. Thông thường, dữ liệu đượcbiến đổi thông qua ngôn ngữ xử lý dữ liệu, ngoài ra nó cũng có thể đượcbiến đổi thông qua việc xử lý các chuỗi hoặc số. Để phân biệt giữa các loạixử lý này, hãy cho rằng dữ liệu được lưu trữ trong phạm vi DML, đầu ra hoặc dữliệu hiển thị là những gì hoặc bằng cách nào dữ liệu lưu được hiển thị cho ngườidùng. Một ví dụ đơn giản cho trường hợp này là ngày tháng. Những gì được lưucó thể được yêu cầu để hiển thị theo những cách khác nhau. Ví dụ như là March8th, 2007 cũng như 03/08/2007; nó phụ thuộc vào những gì mà bạn hoặc ngườidùng của bạn muốn nhìn thấy như thế nào.Tiêu điểm chính của bài viết này liên quan đến bằng cách nào bạn có thể lấyđược từ những thứ được lưu để hiển thị nó như thế nào đó. Tiêu điểm này liênquan đến những vấn đề xử lý xung quanh một chuỗi hay một số nào đó. Chorằng bạn có một ứng dụng hỗ trợ các thống kê hoặc cung cấp phiếu cho ngườidùng thông qua Internet. Việc kích chuột để đệ trình trong một biểu mẫu thốngkê trực tuyến, thống kê theo ID hoặc theo số tài khoản, để được qua như mộttrong những cặp giá trị - tên trong một URL, đây là một vấn đề thường đượcthực hiện trong các bộ nhận dạng của bạn.Trường hợp sử dụng khác cho cơ chế truyền tải “truyền dữ liệu trở lại” này dùngđể hợp lệ hoặc giới hạn sự sử dụng của bạn. Các phiếu, dù trong biểu mẫu bằnggiấy hoặc điện tử đều được biểu hiện bằng những định dạng số. Các số rất lớnlàm cho chúng trở lên khó khăn hơn đối với việc làm giả mạo khi mà mật độ củanó được giãn cách nhiều hơn.Mặc dù vậy vấn đề ở đây là việc truyền trở lại số mã vạch 22 con số chẳng hạnsẽ tiêu tốn đến không gian hay chiều dài trong URL (giới hạn 255 hoặc 256 kítự). Những gì cần thiết ở đây là cách làm ngắn một số lớn trở thành một số nhỏhơn.Một phương pháp để giải quyết vấn đề trên là lấy những số trong hệ cơ số 10 vàbiến đổi chúng thành các số trong hệ cơ số 36, bằng cách đó bạn có thể tiếtkiệm được khoảng trống. Trong Oracle, bạn sẽ thực hiện điều đó như thế nào?Phương pháp PL/SQLHãy xem xét phương pháp PL/SQL. Mã được tối ưu hóa thành bit, trong đó thừasố có một bước nhảy dưới dạng vị trí hoặc tính lặp đi lặp lại đã sử dụng trongcác tài khoản. Nó cũng dựa vào đầu vào hiện nay với tối thiểu chiều dài 22 chữs ố.CREATE OR REPLACE FUNCTION gen_barcode36 (i_coupon_numberNUMBER)RETURN VARCHAR2 IS v_number number; v_curval number; v_curinc number := power(36,14); v_true number := 0 ; v_pos number := 15; v_dec_count number := 0 ; v_pos_val number := 0 ; v_cur_num number := 0 ; v_test_num number := 0 ; v_new_num number := 0 ; v_cur_digit char := ; v_new_val varchar2(15) := ; BEGIN v_number := i_coupon_number; while ( v_true = 0 ) loop v_curinc := v_curinc * 36; v_curval := v_number / v_curinc; if ( v_curval < 1 ) then v_true := 1; else v_pos := v_pos + 1; end if; end loop; v_dec_count := v_pos; v_new_val := NULL; v_cur_num := v_number; WHILE ( v_dec_count > 0) LOOP v_pos_val := power(36,v_dec_count - 1); v_test_num := trunc(v_cur_num/v_pos_val); select decode(v_test_num,35,z, 34,y, 33,x, 32,w, 31,v, 30,u, 29,t, 28,s, 27,r, 26,q, 25,p, 24,o, 23,n, 22,m, 21,l, 20,k, 19,j, 18,i, 17,h, 16,g, 15,f, 14,e, 13,d, 12,c, 11,b, 10,a, 9,9, 8,8, 7,7, 6,6, 5,5, 4,4, 3,3, 2,2, 1,1, 0) INTO v_cur_digit FROM DUAL; IF ( v_new_val IS NOT NULL ) THEN v_new_val := v_new_val || v_cur_digit; ELSE v_new_val := v_cur_digit; END IF; v_cur_num := v_cur_num - (v_pos_val * v_test_num); v_dec_count := v_dec_count - 1; END LOOP; RETURN v_new_val; END gen_barcode36;/Một phiên bản khác của phương pháp này có đầu ra đính kèm với nó vì vậy bạncó thể thấy được các số được giảm như thế nào.SQL> select gen_barcode36(7700000000000000000000) fromdual;GEN_BARCODE36(7700000000000000000000)-----------------------------------------------------1950zn8fqxjygowStarting with 7700000000000000000000Position: 6140942214464815497216 current number: 1Position 14 current value: 1Position: 170581728179578208256 current number: 9Pos ...
Nội dung trích xuất từ tài liệu:
Xử lý dữ liệu bằng Java trong OracleXử lý dữ liệu bằng Java trong OracleNguồn:quantrimang.comOracle luôn là một công cụ hay ứng dụng tốt nhất để xử lý dữ liệu? Câu trảlời nằm ở bên trong những gì bạn thực hiện. Thông thường, dữ liệu đượcbiến đổi thông qua ngôn ngữ xử lý dữ liệu, ngoài ra nó cũng có thể đượcbiến đổi thông qua việc xử lý các chuỗi hoặc số. Để phân biệt giữa các loạixử lý này, hãy cho rằng dữ liệu được lưu trữ trong phạm vi DML, đầu ra hoặc dữliệu hiển thị là những gì hoặc bằng cách nào dữ liệu lưu được hiển thị cho ngườidùng. Một ví dụ đơn giản cho trường hợp này là ngày tháng. Những gì được lưucó thể được yêu cầu để hiển thị theo những cách khác nhau. Ví dụ như là March8th, 2007 cũng như 03/08/2007; nó phụ thuộc vào những gì mà bạn hoặc ngườidùng của bạn muốn nhìn thấy như thế nào.Tiêu điểm chính của bài viết này liên quan đến bằng cách nào bạn có thể lấyđược từ những thứ được lưu để hiển thị nó như thế nào đó. Tiêu điểm này liênquan đến những vấn đề xử lý xung quanh một chuỗi hay một số nào đó. Chorằng bạn có một ứng dụng hỗ trợ các thống kê hoặc cung cấp phiếu cho ngườidùng thông qua Internet. Việc kích chuột để đệ trình trong một biểu mẫu thốngkê trực tuyến, thống kê theo ID hoặc theo số tài khoản, để được qua như mộttrong những cặp giá trị - tên trong một URL, đây là một vấn đề thường đượcthực hiện trong các bộ nhận dạng của bạn.Trường hợp sử dụng khác cho cơ chế truyền tải “truyền dữ liệu trở lại” này dùngđể hợp lệ hoặc giới hạn sự sử dụng của bạn. Các phiếu, dù trong biểu mẫu bằnggiấy hoặc điện tử đều được biểu hiện bằng những định dạng số. Các số rất lớnlàm cho chúng trở lên khó khăn hơn đối với việc làm giả mạo khi mà mật độ củanó được giãn cách nhiều hơn.Mặc dù vậy vấn đề ở đây là việc truyền trở lại số mã vạch 22 con số chẳng hạnsẽ tiêu tốn đến không gian hay chiều dài trong URL (giới hạn 255 hoặc 256 kítự). Những gì cần thiết ở đây là cách làm ngắn một số lớn trở thành một số nhỏhơn.Một phương pháp để giải quyết vấn đề trên là lấy những số trong hệ cơ số 10 vàbiến đổi chúng thành các số trong hệ cơ số 36, bằng cách đó bạn có thể tiếtkiệm được khoảng trống. Trong Oracle, bạn sẽ thực hiện điều đó như thế nào?Phương pháp PL/SQLHãy xem xét phương pháp PL/SQL. Mã được tối ưu hóa thành bit, trong đó thừasố có một bước nhảy dưới dạng vị trí hoặc tính lặp đi lặp lại đã sử dụng trongcác tài khoản. Nó cũng dựa vào đầu vào hiện nay với tối thiểu chiều dài 22 chữs ố.CREATE OR REPLACE FUNCTION gen_barcode36 (i_coupon_numberNUMBER)RETURN VARCHAR2 IS v_number number; v_curval number; v_curinc number := power(36,14); v_true number := 0 ; v_pos number := 15; v_dec_count number := 0 ; v_pos_val number := 0 ; v_cur_num number := 0 ; v_test_num number := 0 ; v_new_num number := 0 ; v_cur_digit char := ; v_new_val varchar2(15) := ; BEGIN v_number := i_coupon_number; while ( v_true = 0 ) loop v_curinc := v_curinc * 36; v_curval := v_number / v_curinc; if ( v_curval < 1 ) then v_true := 1; else v_pos := v_pos + 1; end if; end loop; v_dec_count := v_pos; v_new_val := NULL; v_cur_num := v_number; WHILE ( v_dec_count > 0) LOOP v_pos_val := power(36,v_dec_count - 1); v_test_num := trunc(v_cur_num/v_pos_val); select decode(v_test_num,35,z, 34,y, 33,x, 32,w, 31,v, 30,u, 29,t, 28,s, 27,r, 26,q, 25,p, 24,o, 23,n, 22,m, 21,l, 20,k, 19,j, 18,i, 17,h, 16,g, 15,f, 14,e, 13,d, 12,c, 11,b, 10,a, 9,9, 8,8, 7,7, 6,6, 5,5, 4,4, 3,3, 2,2, 1,1, 0) INTO v_cur_digit FROM DUAL; IF ( v_new_val IS NOT NULL ) THEN v_new_val := v_new_val || v_cur_digit; ELSE v_new_val := v_cur_digit; END IF; v_cur_num := v_cur_num - (v_pos_val * v_test_num); v_dec_count := v_dec_count - 1; END LOOP; RETURN v_new_val; END gen_barcode36;/Một phiên bản khác của phương pháp này có đầu ra đính kèm với nó vì vậy bạncó thể thấy được các số được giảm như thế nào.SQL> select gen_barcode36(7700000000000000000000) fromdual;GEN_BARCODE36(7700000000000000000000)-----------------------------------------------------1950zn8fqxjygowStarting with 7700000000000000000000Position: 6140942214464815497216 current number: 1Position 14 current value: 1Position: 170581728179578208256 current number: 9Pos ...
Tìm kiếm theo từ khóa liên quan:
Cơ sở dữ liệu An ninh – Bảo mật Công nghệ thông tin Quản trị mạng Thủ thuật máy tínhGợi ý tài liệu liên quan:
-
52 trang 430 1 0
-
62 trang 402 3 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 378 6 0 -
24 trang 355 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 314 0 0 -
Làm việc với Read Only Domain Controllers
20 trang 303 0 0 -
74 trang 299 0 0
-
13 trang 294 0 0
-
96 trang 293 0 0
-
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 293 0 0