Professional Documents
Culture Documents
Sybase User Defined SQL 061907
Sybase User Defined SQL 061907
2:
User Defined SQL Functions &
Instead Of Triggers
Steve Glagow
President, International
Sybase User Group
New Features in ASE 15.0.2:
User Defined SQL Functions &
Instead Of Triggers
Peter Schneider
Technical Director, ASE Development,
Sybase Inc.
Agenda
4
SQL UDFs
5
SQL UDFs
6
SQL UDFs
7
SQL UDFs
8
SQL UDFs
--------------------------
Jun 6 2007 2:42PM
----------------------
06-Jun-2007
9
SQL UDFs
SELECT date_my_fmt(getdate())
10
SQL UDFs
11
SQL UDFs
12
SQL UDFs
13
SQL UDFs
(return status = 0)
14
SQL UDFs
15
SQL UDFs
16
SQL UDFs
17
SQL UDFs
18
Agenda
19
INSTEAD OF Triggers
20
INSTEAD OF Triggers
21
INSTEAD OF Triggers
22
INSTEAD OF Triggers
23
INSTEAD OF Triggers
24
INSTEAD OF Triggers
25
INSTEAD OF Triggers
26
INSTEAD OF Triggers
27
INSTEAD OF Triggers
(1 row affected)
Trigger is enabled.
(return status = 0)
28
INSTEAD OF Triggers
(return status = 0)
29
INSTEAD OF Triggers
30
INSTEAD OF Triggers
31
INSTEAD OF Triggers
32
INSTEAD OF Triggers
33
INSTEAD OF Triggers
34
INSTEAD OF Triggers
35
Agenda
36
Encryption With UDFs and IOTs
• Ingredients
– Functions to encrypt/decrypt the data.
• encrypt is applied when data is stored.
• decrypt is applied when data is retrieved.
– Table to store data on disk.
• No access permissions to users.
– View defined upon the table.
• Presents data to users in decrypted form.
– Instead of triggers on the view.
• Makes view updateable.
• Encrypts data that is inserted into the table.
37
Encryption With UDFs and IOTs
• Example:
– Encrypt
• inttohex() – converts an integer value into a hex string.
– Decrypt
• hextoint() – converts a hex string into an integer value.
– Table
• CREATE TABLE employee_t (id int primary key, name
varchar(30), salary varchar(30))
– View
CREATE VIEW employee as SELECT id, name, salary =
hextoint(salary) FROM employee_t
38
Encryption With UDFs and IOTs
• Example cont’d.
– An INSERT instead of trigger to be able to insert values into
employee:
CREATE TRIGGER empInsert ON employee INSTEAD OF
INSERT AS
BEGIN
INSERT INTO employee_t SELECT id, name, inttohex(salary)
FROM inserted
END
• For complete functionality, we also need instead of
triggers for DELETE and UPDATE.
39
Encryption With UDFs and IOTs
40
Encryption With UDFs and IOTs
41
Encryption With UDFs and IOTs
42
Encryption With UDFs and IOTs
43
Encryption With UDFs and IOTs
44
Encryption With UDFs and IOTs
45
Agenda
46
Table-valued SQL UDFs
47
Table-valued SQL UDFs
48
Table-valued SQL UDFs
49
Summary
50