4. Ruby is
object-oriented
dynamic
programming language
simple from outside
powerful inside
5. Ruby on Rails
Web applications development framework
Developed in Ruby
Extracted from 37signals Basecamp application
Open source software
Focused on developer productivity
Agile software development approach
6. Main principles
DRY - Don’t Repeat Yourself
Convention over Configuration
Opinionated software
16. SQL bind variables
Employee.find(1)
database.yml
ActiveRecord
development:
adapter: oracle_enhanced SELECT * FROM employees
database: XE WHERE (employees.id = 1)
username: blogdemo Oracle optimizer
password: blogdemo
cursor_sharing: force SELECT * FROM employees WHERE
(employees.id = :SYS_B_0)
17. Oracle Data Types
Ruby Rails Oracle
Fixnum :integer NUMBER
Float :float NUMBER
BigDecimal :decimal NUMBER, DECIMAL
Time :datetime DATE
Time :time DATE
Date :date DATE
String :string VARCHAR2
String :text CLOB
String :binary BLOB
True/FalseClass :boolean NUMBER(1), CHAR(1)
19. Issues & Limitations
Identifiers up to 30
slow Data Dictionary views
characters
CLOB / BLOB usage in SQL
empty String == NULL
statements
Mac OS X is not well
absence of LIMIT, OFFSET
supported by Oracle :(
20. Multi-platform
support
oracle_enhanced adapter
Ruby/YARV
MRI 1.8.6/1.8.7 JRuby
1.9.1
ruby-oci8 1.x
ruby-oci8 2.x JDBC
or 2.x
29. class Employee < ActiveRecord::Base
set_create_method do
plsql.employees_pkg.create_employee(
:p_first_name => first_name,
:p_last_name => last_name,
PL/SQL CRUD :p_employee_id => nil
)[:p_employee_id]
procedures in end
set_update_method do
legacy plsql.employees_pkg.update_employee(
:p_employee_id => id,
applications :p_first_name => first_name,
:p_last_name => last_name
(with )
end
ActiveRecord) set_delete_method do
plsql.employees_pkg.delete_employee(
:p_employee_id => id
)
end
end