SQL Server Select Equivalent Oracle Select Equivalent SQL AnyWhere Select Equivalent MS Access Select |
Column |
|
1 | select space( 200
) select lpad( ' ', 200 ) from dual select space( 200 ) select space( 200 ) from test |
200 |
2 | select ltrim(
space( 200 ) ) select ltrim( lpad( ' ', 200 ) ) from dual select ltrim( space( 200 ) ) select ltrim( space( 200 ) ) from test |
200 |
3 | select space( :n
) select lpad( ' ', :n ) from dual select space( :n ) select space( :n ) from test |
0 |
4 | select space( :n
+ 200 ) select lpad( ' ', :n + 200 ) from dual select space( :n + 200 ) select space( :n + 200 ) from test |
255 |
5 | select ltrim(
space( :n + 200 ) ) select ltrim( lpad( ' ', :n + 200) ) from dual select ltrim( space( :n + 200 ) ) select ltrim( space( :n + 200 ) ) from test |
255 |
Conclusion:
SQL Server (Sybase and Microsoft): | Guess method; reports largest possible size, or 0 when unable to guess |
Oracle: | Calculate method; reports smallest possible size |
Sybase SQL AnyWhere: | Guess method; reports largest possible size |
MS Access: | Don't bother to calculate or guess; always reports largest possible size for the column's data type |
Notes:
Tests were compiled using the following software:
1. Sybase SQL Server 11.0.2
2. MS SQL Server 6.5
3. Oracle 8.00.3
4. Sybase SQL AnyWhere 5.0 via ODBC driver 5.05
5. MS Access 7.0 via ODBC driver 3.51(Test table was created for this test, since MS
Access requires FROM part in SELECT statement)