Sweeney, 34, has spent his entire career with Kansas City since the Royals selected him in the 10th round of the 1991 draft.
He made five All-Star teams with the Royals and finished 11th in the American League MVP balloting in 2000 when he hit .333 with 29 homers and 144 RBIs.
Sweeney has been limited to 134 games because of injuries the past two seasons. The San Diego Padres expressed interest in him before reaching an agreement with Tony Clark to fill their need for a veteran hitter off the bench.
Sweeney is expected to play some first base and DH for the A's, and he'll add some right-handed balance to a lineup that is heavy with left-handed hitters. Daric Barton, Jack Cust and Dan Johnson -- Oakland's top three options at first base and DH -- all hit from the left side.
Sweeney's signing was first reported by MLB.com.
Jerry Crasnick covers Major League Baseball for ESPN.com.