SQLServer:
CREATE PROCEDURE reguser
@username varchar(20)
as
declare @pwd char(6)
set @pwd = '123456'select pwd
insert into users(account,psw) values(@username,@pwd)
end调用reguser 'myname',然后取结果集的第一个字段就是用户密码,ORACLE该怎么实现?

解决方案 »

  1.   

    一个说英语,一个说中文,都符合语言这个国际标准,但是如果你不兼通英语和中文,怎么翻译?
    所谓可移植性差是相对而言的,本来开发就应当是基于OS和DB的,每个OS和DB的特性都不同,你要真正发挥效用,必须是依赖平台的
      

  2.   

    不同厂家之间的sql也许差别不大,因为sql基本符合ansi标准。但是存储过程就不是了。要移植,除非自己修改,否则不太可能。就是同一个厂家的产品,当版本差别打大的时候,Pl/sql也存在区别的。
      

  3.   

    --这是一个ORACLE INSERT TABLE 的例子,看一下有什么区别了.ORACLE 和 SQL的数据类型有些都不一样的,比如说SQL里面的VARCHAR 在ORACLE 里面是VARCHAR2.
    CREATE OR REPLACE PROCEDURE sp_Insert_SQLPLUS_PRODUCT_PROFILE( v_PRODUCT SQLPLUS_PRODUCT_PROFILE.PRODUCT%TYPE, v_USERID SQLPLUS_PRODUCT_PROFILE.USERID%TYPE, v_ATTRIBUTE SQLPLUS_PRODUCT_PROFILE.ATTRIBUTE%TYPE, v_SCOPE SQLPLUS_PRODUCT_PROFILE.SCOPE%TYPE, v_NUMERIC_VALUE SQLPLUS_PRODUCT_PROFILE.NUMERIC_VALUE%TYPE, v_CHAR_VALUE SQLPLUS_PRODUCT_PROFILE.CHAR_VALUE%TYPE, v_DATE_VALUE SQLPLUS_PRODUCT_PROFILE.DATE_VALUE%TYPE, v_LONG_VALUE SQLPLUS_PRODUCT_PROFILE.LONG_VALUE%TYPE)ASBEGIN
    INSERT INTO SQLPLUS_PRODUCT_PROFILE ( PRODUCT, USERID, ATTRIBUTE, SCOPE, NUMERIC_VALUE, CHAR_VALUE, DATE_VALUE, LONG_VALUE ) VALUES ( v_PRODUCT, v_USERID, v_ATTRIBUTE, v_SCOPE, v_NUMERIC_VALUE, v_CHAR_VALUE, v_DATE_VALUE, v_LONG_VALUE )
    COMMIT; EXCEPTION     WHEN OTHERS THEN         ROLLBACK;END sp_Insert_SQLPLUS_PRODUCT_PROFILE