why when i run my sql code, the terminal stop on some wired number?
Your code above does not create the trigger, it just puts it to the SQL buffer, because this is how SQL*Plus works. One side effect of this is regular SQL statements not executing, or not getting the prompt back. Use a slash / after the END TRIGGER01; clause:

CREATE TRIGGER TRIGGER01
AFTER INSERT ON WAREHOUSE
REFERENCING NEW AS NEWWAREHOUSE
FOR EACH ROW
WHEN (NEWWAREHOUSE.STATE = 'MAINE')
BEGIN
INSERT INTO WAREHOUSE_MAINE VALUES(:NEWWAREHOUSE.SHIPPEREIN,:NEWWAREHOUSE.WAREHOUSENAME);
END TRIGGER01;
/
INSERT INTO WAREHOUSE VALUES('108-34-9999', 'MoonHouse', 'MAINE', 'kapa');
SELECT * FROM WAREHOUSE_MAINE;